ホームページ >バックエンド開発 >PHPチュートリアル >マーク バイ マーク ジェイコブス 公式サイト PHP4とMySQLのデータベース操作機能を詳しく解説
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 "接続に失敗しました"; !"; //Connect failed, Display Connect Failed!
?>
上記の例では、mysql_connect() の実行に失敗した場合、システム エラー メッセージが表示され、実行は続行されます。では、これらのシステム エラー プロンプトをブロックし、失敗後にプログラムを終了するにはどうすればよいでしょうか?
MySQL では、システム エラー プロンプトを隠すためにデータベース関数の前に @ 記号を追加することができます。同時に、よりわかりやすいエラー プロンプトを表示するために die() 関数が使用されます。プログラムは自動的に終了します。
上記の例は次のように変更できます:
$connect = @mysql_connect("localhost","user","password") または die ("データベース サーバーに接続できません!");
If mysql_connect()の実行に失敗すると、「データベース サーバーに接続できません!」と表示され、プログラムを終了します。
(2).mysql_pconnect()
形式: int mysql_pconnect(string [hostname] [ort],string [username],string [password]);
この関数は基本的に (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);
mysql_connect() 関数によって確立された接続を閉じます。返される場合、それ以外の場合は false 値が返されます。
例は次のとおりです:
$connect = @mysql_connect("hostname","user","password") または die("データベース サーバーに接続できません!");
$close = @mysql_close($connect) または die (" データベース サーバー接続を閉じることができません!");
?>
注: mysql_close() は、mysql_pconnect() 関数によって確立された接続を閉じることができません。
. データベース関数の選択 (1):
mysql_select_db()
形式: int mysql_select_db(string データベース名, int link_identifier)
成功した場合は 1 つの true 値 (True) を返します。失敗した場合は False 値を返します
例 1:
$select = mysql_select_db('forum', $connect);
if($select)
{echo "connect db forum success!";}
else
{echo " connect db フォーラムに失敗しました!";}
?>
例 2:
$select = mysql_select_db("forum",$connect) or 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); ) echo "Successed !";
else echo "Failed !";
この関数は、mysql_select_db() 関数と組み合わせて使用する必要があります。
2. mysql_db_query()
形式: int mysql_db_query(string database, string sqlquery, int link_identifier);
この関数にはデータベース名と SQL ステートメント sqlquery を指定する必要があります。失敗した場合は、False が返されます。 $ 例: c $ Connect = MySQL_CONNECT ($ Hostname, $ User, $ PWD); $ Query = MySQL_DB_QUERY ($ dbname, $ SQL, $ Connect);
?> mysql_db_query() と mysql_query() の違いは、前者はデータベースを選択するために mysql_select_db() を使用する必要がなく、SQL ステートメントの実行中にデータベースを選択することです。
. データベース レコード操作関数 (5):
1, mysql_fetch_array()
形式: array mysql_fetch_array(int query); 実行が成功すると、次のレコードの値が格納される配列が返されます。失敗すると、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);
mysql_fetch_array() の関数は基本的に 1 と同じです。違いは、mysql_fetch_row() は配列添字でのみ表現できることです。
成功した場合は配列を返し、失敗した場合は False 値を返します。
例:
$query = mysql_query($sql, $connect);
while($row = mysql_fetch_row($query))
{
echo $row[0] . " $row[1] . ";
}
?>
注: mysql_fetch_row() 関数は配列添字でのみ表現でき、0 から始まります。
もう 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")."
";
echo mysql_result($query, 1, "column1") ";
echo mysql_result($query, 2, "column1")."
";
?>
注: この関数は機能が少ないですが、使い方は簡単です。
4. mysql_fetch_object()
形式: object mysql_fetch_object(int query)
実行が成功した場合、値は object の形式で返されます。返される。
例:
$query = mysql_query($sql, $connect);
while($object = mysql_fetch_object($query))
{
echo $object->column1 . "
"; ; column2 . "
";
echo $object->column";
?> 注: mysql_fetch_object() 関数が正常に実行されると、オブジェクトが返されます。
操作は次のとおりです:
$object->フィールド名
5. mysql_data_seek()
形式: int mysql_data_seek(int row, int query)
指定された行 (row_number) にカーソルを移動します
実行成功、return true 値、failure は 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);
echo $array[column1]."
";
echo $array[column2]."
";
?>>
データベースレベルのデータベース操作関数 (2):
1, mysql_create_db()
形式: 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)create database dbtest
(2)データベース dbtest を削除
7) データベース情報関数 (2):
1, mysql_fetch_field()
形式: object mysql_fetch_field(int query, int [field_offset])
1 つのオブジェクト、つまり添え字付きのハッシュ テーブルを返します。
table: テーブル名
name: フィールド名
max_length: フィールドの最大長
not_null: フィールドが null でない場合は 1 を返し、そうでない場合は 0 を返す
primary_key: フィールドが主キーの場合は 1 を返し、それ以外の場合は 0 を返す
unique_key: フィールド 一意のキーの場合は 1 を返し、それ以外の場合は 0 を返します
multiple_key : フィールドが非一意のキーの場合は 1 を返し、それ以外の場合は 0 を返します
numeric : フィールドが数値の場合は 1 を返し、それ以外の場合は 0 を返します
blob : フィールドが BLOB の場合は 1 を返し、そうでない場合は 0 を返します
type : フィールドのタイプ
unsigned : フィールドが符号なしの場合は 1 を返し、それ以外の場合は 0 を返します
zerofill : フィールドがゼロで埋められている場合は 1 を返し、それ以外の場合は 0 を返します
参照形式: オブジェクト名->添字名
これを使用します この関数はテーブル名、フィールド名、型を取得できます...
例:
$query = mysql_query($sql, $connect); object = mysql_fetch_field($query))
{
echo " テーブル名 : ".$object->table."
";
echo "フィールド名 : ".$object->name."
"; "主キー: ".$object->primary_key."
";
echo "not null: ".$object->not_null."
"; ."
";
echo "フィールド最大長 : " .$object->max_length."
";
?> 注: ハッシュ テーブルは 0 座標から始まります。ハッシュテーブルの0番目の項目。
ハッシュ テーブルの 3 番目の項目またはフィールドの情報を直接取得したい場合は、次の形式を使用できます:
$query = mysql_query($sql, $connect);
$object = mysql_fetch_field($query, 2) );
echo "テーブル名: ".$object->table."
";
echo "フィールド名: ".$object->name."
"; -> ;primary_key."
";
echo "not null : ".$object->not_null."
";
echo "フィールドタイプ: ".$object->type."
"; field max length : ".$object->max_length.";
?>
実際、これは次の関数を通じても同じ目的を達成できます。
2. mysql_field_seek()
形式: int mysql_field_seek(int $query, int field_offset);
指定されたフィールドにカーソルを移動します。 $ 例: q $ query = mysql_query ($ SQL, $ Connect); $ Seek = MySQL_Field_Seek ($ Query, 2); "テーブル名:" $ Object-& GT ;table."
";名前 : ".$object->name.";
echo "主キー : ".$object->primary_key." ;
echo "not null : ".$object->not_null."
";
echo "フィールドの種類 : ".$object->type."
";
echo "フィールドの最大長 : ".$object->max_length.";
?>
これも満たします上記の例と同じ要件。
8) データベース名とテーブル名を取得します(2):
1. mysql_list_dbs()
形式: int mysql_list_dbs(int link_identifier);
利用可能なすべてのデータベース名(データベース名)を取得します。
例:
$connect = mysql_connect($host, $usr,$pwd);
$dbs = mysql_num_rows($dbs);
echo "データベース合計: ".$rows ;
$i = 0;
while($i$db_name[$i] = mysql_tablename($dbs, $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");
echo "テーブル合計: ".$ rows ;
$i = 0;
while($i$テーブル名[$i] = mysql_テーブル名($i);
?>
mysql 内のすべてのテーブルの名前を順番に表示できます
注: MySQL の show tables コマンドと同等です (最初に use mysql コマンドを使用してデータベースを選択します)
以上、マーク バイ マーク ジェイコブス公式サイトの内容を含め、PHP4とMySQLデータベース操作機能の詳細な説明をご紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。