私
PHP について語るとき、MySQL について言及することは欠かせません。MySQL について語る場合には、PHP についても言及する必要があります。 PHP の急速な台頭は MySQL と切り離すことができず、MySQL の普及も PHP と密接に関係しています。
以下は、PHP4 の MySQL に関連する関数 (合計 32 個、すべて mysql_ で始まる) の詳細な分析です:
データベース サーバーに接続する関数 ( 2 ):
(1).mysql_connect()
形式: int mysql_connect(string [hostname] [ort],string [username],string [password]);の port パラメータはデータベース サーバーのポート番号を表します。通常、デフォルトのポート番号を使用できます。
パラメータを何も入力しない場合、デフォルトのホスト名は localhost、ユーザー名は root、パスワードは空です。
関数が正常に実行された場合は、int 型の link_identifier が返され、失敗した場合は false 値が返されます。
例:
$connect = mysql_connect("localhost","user","password");
if($connect) echo "接続成功!"; //接続に成功しました。
else echo "接続に失敗しました!" //接続に失敗しました。
?> を表示します。上記の例では、mysql_connect() の実行に失敗すると、システム エラー メッセージが表示され、実行は続行されます。では、これらのシステム エラー プロンプトをブロックし、失敗後にプログラムを終了するにはどうすればよいでしょうか?
MySQL では、システム エラー プロンプトをブロックするためにデータベース関数の前に @ 記号を追加することができます。同時に、よりわかりやすいエラー プロンプトを表示するために die() 関数が使用されます。 ) 関数はプログラムを自動的に終了します。
上記の例は次のように変更できます:
$connect = @mysql_connect("localhost","user","password") または die ("データベース サーバーに接続できません!" );
?>
mysql_connect() の実行に失敗すると、「データベース サーバーに接続できません!」と表示され、プログラムが終了します。
(2).mysql_pconnect()
形式: int mysql_pconnect(string [hostname] [ort],string [username],string
この関数は () と同じです。 1) mysql_connect() は基本的に同じですが、違いは次のとおりです:
----------- データベース操作が完了すると、(1) の mysql_connect() によって確立された接続が自動的に確立されます。 (2) mysql_pconnect() によって確立された接続は引き続き存在し、安定した耐久性のある接続になります。
-------- (2) の mysql_pconnect() では、各接続の前に、同じホスト名、使用、パスワードを使用した接続があるかどうかを確認します。存在する場合は、この接続番号を使用します。直接。 。
-------- (1) の mysql_connect() によって確立された接続は mysql_close() で閉じることができますが、(2) の mysql_pconnect() は mysql_close() で閉じることができません。
. データベース接続関数を閉じる (1):
mysql_close()
形式: int mysql_close(int link_identifier); () 関数によって確立された接続は、実行が成功した場合は true 値を返し、失敗した場合は false 値を返します。
例は次のとおりです。
$connect = @mysql_connect("hostname","user","password") または die("データベース サーバーに接続できません!"); >
$close = @mysql_close($connect) or die ("データベース サーバー接続を閉じることができません!");
?> 注: mysql_close() は閉じることができませんmysql_pconnect()関数により接続を確立します。
. データベース関数の選択 (1):
mysql_select_db()
形式: int mysql_select_db(string データベース名, int link_identifier)
指定されたデータベースを選択します。 name、成功した場合は true 値 (True) を 1 つ返し、失敗した場合は false 値を 1 つ返します
例 1:
$select = mysql_select_db('forum', $connect);
if($ select);
{echo "データベース フォーラムの接続に成功しました!";}
else
{echo "データベース フォーラムの接続に失敗しました!";}
?>
例 2:
$select = mysql_select_db("forum",$connect) または die("この DB に接続できません!");
?> 注: この関数は、MySQL ステートメントの USE と同等です。 USE フォーラムとして
.SQL クエリ関数 (2):
1, mysql_query()
形式: int mysql_query(string sqlquery, int link_identifier);標準の SQL ステートメント要求をサーバーに送信します。失敗した場合は、False 値が返されます。
例:
$connect = mysql_connect($hostname,$user,$pwd);
$select = mysql_select_db($dbname,$connect);
$query = mysql_query($) sql, $connect);
if($query) echo "成功しました !";
else echo "失敗しました !";
この関数は mysql_select_db( ) 関数、単独で使用しても意味がありません。
2. mysql_db_query()
形式: int mysql_db_query(string database, string sqlquery, int link_identifier);
この関数ではデータベース名と SQL ステートメント sqlquery を指定する必要があります。失敗時に False を返すなど。
例:
$connect = mysql_connect($hostname, $user, $pwd);
$query = mysql_db_query($dbname, $sql, $connect); if($query) echo "Successed !";
else echo "Failed !";
mysql_db_query() と mysql_query() の違いは、前者は必要ないことです。 mysql_select_db( ) を使用してデータベース データベースを選択し、SQL ステートメントの実行中にデータベースを選択します。
<5>. データベース レコード操作関数 (5):
1. mysql_fetch_array()
形式: array mysql_fetch_array(int query); 正常に実行され、1 つの配列が返されます。配列には次のレコードの値が格納されます。実行が失敗した場合は、False 値が返されます。
返された配列は、添字またはフィールド名のいずれかで表すことができます。
例:
$query = mysql_query($sql, $connect);
while($arrary = mysql_fetch_array($query))
{
echo $array [column1]." | ".$array[column2];
//echo $array[0]." | ".$array[1];
}
; 🎜>注: 配列の添字は 0 から始まります。
2. mysql_fetch_row()
形式: array = mysql_fetch_row(int query);
は、1 の mysql_fetch_array() 関数と基本的に同じ機能を持ちます。違いは、mysql_fetch_row() は配列添字でのみ表現できることです。
成功した場合は配列を返し、失敗した場合は False 値を返します。
例:
$query = mysql_query($sql, $connect);
while($row = mysql_fetch_row($query))
{
echo $row[0] . " | " . $row[1] . "
";
もう 1 つは、mysql_fetch_row() は mysql_fetch_array() よりも高速に実行され、どちらもデータの次の行を読み取ります。
3. mysql_result()
形式: int mysql_result(int query, int row, string filedname);
mysql_result() では、パラメータ行は 0 から開始する必要があります。パラメータ filedname 実際のフィールド名である必要があり、添え字で表すことはできません。
実行が成功すると、データベースから取得したフィールドの値が返されます。失敗すると、False 値が返されます。
例:
$query = mysql_query($sql, $connect);
echo mysql_result($query, 0, "column1")."
"; ($query, 1, "column1")."
";
echo mysql_result($query, 2, "column1")."
" >注: この関数は機能は少ないですが、使いやすいです。
4. mysql_fetch_object()
形式: object mysql_fetch_object(int query)
実行が成功すると、値が返されます。オブジェクトの形式。失敗すると、False 値が返されます。
例:
$query = mysql_query($sql, $connect);
while($object = mysql_fetch_object($query))
{
echo $object-> column1 . "
";
echo $object->column>" >
注: mysql_fetch_object() 関数は実行が成功するとオブジェクトを返します。
操作は次のとおりです。
$object->フィールド名
5. mysql_data_seek()
形式: int mysql_data_seek(int row, int query);指定された Row (row_number) へのカーソル
実行が成功した場合は true 値が返され、失敗した場合は False 値が返されます。
この関数は、mysql_fetch_array() または mysql_fetch_row() と組み合わせて使用できます。つまり、mysql_data_seek() 関数を使用した後、mysql_fetch_array() または mysql_fetch_row() 関数を使用して、指定された行を表示できます。
例:
$query = mysql_query($sql, $connect);
$seek = mysql_data_seek($query, 2);
$arrary = mysql_fetch_array($query); 🎜>echo $array[column1]."
";
echo $array[column2]."
"; データベース操作関数 (2):
1. 🎜>形式: int mysql_create_db(string データベース名, int link_identifier);
プログラムを通じてデータベースを作成します。もちろん、mysql_query() または mysql_db_query() 関数を使用してデータベースを作成または削除することもできます。
しかし、この関数を使用すると、より便利にデータベースを作成できます。
成功した場合は 1 つの true 値を返し、失敗した場合は 1 つの false 値を返します。
例:
$connect = mysql_connect("$hostname","$user","$pwd");
$create = mysql_create_db("dbtest", $connect);
if($create) echo "データベース dbtest の作成に成功しました!";
else echo "データベース dbtest の作成に失敗しました!";
2. mysql_drop_db()
形式: int mysql_drop_db(string データベース名, int link_identifier);
プログラムを通じてデータベースを削除します。
しかし、この関数を使用すると、より便利にデータベースを削除できます。
成功した場合は 1 つの true 値を返し、失敗した場合は 1 つの false 値を返します。
例:
$connect = mysql_connect("$hostname","$user","$pwd");
$create = mysql_drop_db("dbtest", $connect);
if($create) echo "データベース dbtest の削除に成功しました!";
else echo "データベース dbtest の削除に失敗しました!";
注: mysql_query() または mysql_db_query() を使用する場合、SQL ステートメントは次のようにする必要があります:
(1)createdatabasedbtest
(2)dropdatabasedbtest
7) データベース情報関数 (2):
1. mysql_fetch_field()
形式: object mysql_fetch_field(int query, int [field_offset]);
は 1 つのオブジェクト、つまり A を返します。添字付きハッシュテーブル:
table: テーブル名
name: フィールド名
max_length: フィールドの最大長
not_null: フィールドが null でない場合は 1 が返され、それ以外の場合は 0 が返されます
primary_key: フィールドが主キーの場合は 1 を返し、それ以外の場合は 0 を返します
unique_key: フィールドが一意のキーの場合は 1 を返し、それ以外の場合は 0 を返します
multiple_key: フィールドが非一意キーの場合は 1 を返し、それ以外の場合は 1 を返します0 を返します
numeric: フィールドが数値の場合は 1 を返し、それ以外の場合は 0 を返します
blob: フィールドが BLOB の場合は 1 を返し、それ以外の場合は 0 を返します
type: フィールドのタイプ
unsigned: フィールドの場合は 1 を返しますフィールドは符号なし、そうでない場合は 0 を返します
zerofill: フィールドがゼロ埋めされている場合は 1 を返し、それ以外の場合は 0 を返します
参照形式は次のとおりです: オブジェクト名->添え字名
これを使用しますテーブル名とフィールドを取得する関数 Name、type...
例:
$query = mysql_query($sql, $connect)
while($object = mysql_fetch_field() $query))
{
echo "テーブル名 : ".$object->table."
";
echo "フィールド名 : ".$object->name."
";
echo "主キー : ".$object->primary_key."
";
echo "not null : ".$object->not_null.";
echo "フィールドの種類 : ".$object->type."
";
echo "フィールドの最大長 : ".$object->max_length."
"; }
?>
注: ハッシュ テーブルは 0 座標から始まります。つまり、最初のフィールドはハッシュ テーブル内の 0 の項目です。
ハッシュ テーブルの 3 番目の項目またはフィールドの情報を直接取得したい場合は、次の形式を使用できます:
$query = mysql_query($sql, $connect);
$object = mysql_fetch_field( $query , 2);
echo "テーブル名 : ".$object->table."
";
echo "フィールド名 : ".$object->name."
";
エコー "主キー : ".$object->primary_key."
";
エコー "not null : ".$object->not_null.";
echo "フィールドの種類 : ".$object->type."
";
echo "フィールドの最大長 : ".$object->max_length."
"; ?> ;
実際には、次の関数によって同じ目的を達成できます。
2. mysql_field_seek()
形式: int mysql_field_seek(int $query, int field_offset);
指定されたフィールドにカーソルを移動します。
例:
$query = mysql_query($sql, $connect);
$seek = mysql_field_seek($query, 2);
$object = mysql_fetch_field($query); 🎜>echo "テーブル名 : ".$object->table."
";
echo "フィールド名 : ".$object->name."
";主キー: ".$object->primary_key."
";
echo "not null: ".$object->not_null."
";
echo "フィールド タイプ: " .$object->type."
";
echo "field max length : ".$object->max_length."
"; これも上記の例と同じ要件を満たします。
8) データベース名とテーブル名を取得します (2):
1. mysql_list_dbs()
形式: int mysql_list_dbs(int link_identifier)
使用可能なすべてのデータベース名を取得します。 (データベース名)。
例:
$connect = mysql_connect($host, $usr,$pwd);
$dbs = mysql_list_dbs($connect); dbs);
エコー "データベース合計: ".$rows;
while($i$db_name[$i] = mysql_tablename ($dbs, $i);
echo $db_name[$i];
}
?> MySQL 内のすべてのデータベース名を表示します。 )。
注: MySQL の show Databases コマンドと同等です。
2. mysql_list_tables()
形式: int mysql_list_tables(string データベース名)
データベース内のすべてのテーブルの名前を表示します。名前。
例:
$connect = mysql_connect($host, $usr, $pwd);
$tables = mysql_list_tables("mysql"); $tables);
echo "テーブル合計 : ".$rows;
while($i<$rows)
{
$table_name[$i] = mysql_tablename($tables, $i);
echo $table_name[$i];
}
を連続して表示できます。 mysql の下のすべてのテーブルの名前
注: MySQL の show tables コマンドに相当します (最初に use mysql コマンドを使用してデータベースを選択します)
(出典: Feng Shan)