PHP と MySQL 入門 (10)

WBOY
リリース: 2016-06-23 14:31:26
オリジナル
889 人が閲覧しました

第 2 章では、mysql というプログラムを使用して MySQL データベース サーバーに接続し、SQL クエリ (コマンド) を入力し、クエリ結果をすぐに表示できます。 PHP には、mysql_query 関数という同様のメカニズムがあります。

mysql_query(, );

ここで、 は実行する SQL コマンドを含む文字列です。 mysql_select_db と同様、接続 ID パラメータもオプションです。

この関数の戻り値は、発行されたクエリの種類によって異なります。ほとんどの SQL コマンドでは、mysql_query は論理 true または論理 false を返し、実行が成功したかどうかを示します。次の例を参照してください。これは、第 2 章で作成した Jokes データ テーブルの作成に使用されています。 "JokeText TEXT, " .

"JokeDate DATE NOT NULL " .

")";

if ( mysql_query($sql) ) {echo("

ジョーク テーブルが正常に作成されました!

"); } else {$sql = "UPDATE Jokes SET JokeDate='1990-04-01' " .
echo("

ジョーク テーブル作成エラー: " .
mysql_error() . "

");
}





ここで使用される mysql_error は最後のものを返しますMySQL サーバーによって文字列形式で発行されるエラー メッセージ。

DELETE、INSERT、および UPDATE (保存されたデータの変更に使用) の場合、MySQL はこのクエリによって影響を受けるデータ行の数を知ることができます。第 2 章で「チキン」という単語を含むすべてのジョークの日付を設定するために使用した次の SQL コマンドについて考えてみましょう。
"WHERE JokeText LIKE '%chicken%'";

このクエリを実行すると、mysql_affected_rows 関数を使用して、この変更によって影響を受けるデータ行の数を表示できます:


if ( mysql_query($sql) ) {

echo("

更新が影響しました " .

mysql_affected_rows() . " rows.

");

} else {

echo("

更新実行中のエラー: " .

mysql_error () . "

");} SQL クエリの大部分では、mysql_query 関数は論理 true または論理 false のみを返します。 SELECT クエリの場合、これだけでは明らかに十分ではありません。 SELECT クエリはデータベースに保存されているデータを表示するために使用されることを覚えておいてください。 PHP は、クエリが成功したか失敗したかを示すだけでなく、クエリの結果も取得する必要があります。その結果、SELECT クエリを実行すると、mysql_query は「結果セット」を識別する番号を返します。これには、クエリによって返されたすべての行のリストが含まれます。クエリが失敗した場合でも、関数は論理 false を返します。




SELECT コマンドは、多くの情報を取得するため、少し異なります。PHP は、この情報を処理するメソッドを提供する必要があります。

SELECT 結果セットの処理

$result = mysql_query("SELECT JokeText FROM Jokes");

if (!$result) {

echo("

クエリ実行エラー: " .

mysql_error() . "");

exit();

}



クエリの実行時にエラーが発生しないと仮定すると、上記のコードは、ジョーク ライブラリに保存されているすべてのジョークのテキストに関する結果セットを見つけます。この場所変数 $result に格納されます。データベース内のジョークの数に制限がないため、この結果セットは非常に大きくなる可能性があります。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート