ホームページ >バックエンド開発 >PHPチュートリアル >PHP4とMySQLのデータベース操作機能を詳しく解説_PHPチュートリアル

PHP4とMySQLのデータベース操作機能を詳しく解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:08:27814ブラウズ


私 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]);

パラメータ内のポートパラメータは、データベースサーバーのポート番号を表し、通常はデフォルトです。ポート番号が使用されています。
パラメータを何も入力しない場合、デフォルトのホスト名は localhost、ユーザー名は root、パスワードは空です。

関数の実行が成功するとint型の接続番号(link_identifier)が返され、失敗するとfalseの値が返されます。

例:


$connect = mysql_connect("localhost","user","password");
if($connect) echo "接続成功!" //接続成功、接続成功を表示
else echo "Connect Failed!"; //Connect failed, Display Connect Failed!


?> 上の例では、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 [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() 関数によって確立された接続を閉じます。失敗すると true 値が返され、false 値が返されます。

例は次のとおりです:

$connect = @mysql_connect("hostname","user","password") または die("データベース サーバーに接続できません!");

$close = @mysql_close($connect) ) または die ("データベース サーバー接続を閉じることができません!");

?>

注: mysql_close() は、mysql_pconnect() 関数によって確立された接続を閉じることができません。

<3>.データベース関数の選択 (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 "データベース フォーラムに接続できませんでした!";}
?>

例 2:
$select = mysql_select_db("forum",$connect) or die("この DB に接続できません!"
?> ;

注: この関数は、USE フォーラム

<4> などの MySQL の 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); query) 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 が返されます。

例:

$connect = mysql_connect($hostname, $user, $pwd);
$query = mysql_db_query($dbname, $sql, $connect);
if($query) echo "成功しました !"; 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] .
";
}
?>
注: 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) にカーソルを移動します
実行は成功しました失敗すると 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);
echo $array[column1]; ;
echo $array[column2]."
?>

<6>. データベースレベルのデータベース操作関数 (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);データベース dbtest の作成に成功しました!";
else echo "データベース dbtest の作成に失敗しました!";

?>


2, mysql_drop_db()
形式: int mysql_drop_db(string データベース名, int link_identifier);

プログラムを通してデータベースを 1 つ削除します。

しかし、この関数を使用すると、データベースをより便利に削除できます。
成功した場合は 1 つの true 値を返し、失敗した場合は 1 つの false 値を返します。

例:


$connect = mysql_connect("$hostname","$user","$pwd");
$create = mysql_drop_db("dbtest" , $connect);データベース dbtest の削除に成功しました!";
else echo "データベース 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 : フィールドが一意でない場合は 0 を返します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 "field max length : ".$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);

指定されたフィールドにカーソルを移動します。
例:

$query = mysql_query($sql, $connect);
$seek = mysql_field_seek($query, 2);
$object = mysql_fetch_field($query); >テーブル."
";
echo "フィールド名: ".$object->name."
";
echo "主キー: ".$object->primary_key."
"; 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 "データベース合計: ".$行;
$i = 0;
$i<$rows)
$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<$rows)
$table_name[$i] = mysql_tablename($tables, $i);
}

?>

は、mysql 内のすべてのテーブルの名前を順番に表示できます
注: MySQL の show tables コマンドと同等です (最初に use mysql コマンドを使用してデータベースを選択します)
(出典: Feng Dan )



http://www.bkjia.com/PHPjc/314808.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/314808.html

技術記事

MySQL に触れずに PHP について語ることはできませんが、MySQL について語りたいのであれば、PHP についても言及する必要があります。 PHP の急速な台頭は MySQL と切り離すことができず、MySQL の普及も PHP と密接に関係しています。 詳細は以下...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。