PHPでMySQLを利用するには
PHPからMySQLを利用するには、先頭にmysqlという名前のつくPHPの関数を使います(参照:PHP関数リファレンス)。MySQLを使用する場合、PHPの処理は大まかに次のような流れになります。
@ MySQLに接続
A SQLの実行
B SQLの実行結果を表示
C MySQLから切断
データベースの処理を行うには、まずデータベースに接続する必要があります。データベースとの接続が確立されてはじめて具体的な処理を行うことができるようになります。また、開いた扉を閉じるように接続したものは必要がなくなれば切断します。PHPの場合はスクリプトが終了した段階で自動的に切断が行われるので、明示的に切断コードを書く必要はありませんが、より確実なスクリプトを目指す場合には切断処理を書くようにしてください。
MySQLへの接続にはmysql_connectという関数を使います。
■ 引数
ホストには接続するMySQLサーバのホスト名を指定します。また「ホスト名:ポート番号」でポート番号を指定できます。ユーザ名とパスワードにはMySQLサーバでのユーザー名とパスワードを指定します。
■ 戻り値
int型の値を返します。成功した場合は、MySQLとの接続IDを、失敗した場合は0を返します。MySQLとの接続ではエラーが発生することがあるので、必ず戻り値をチェックします。
mysql_connectは接続に成功すると接続IDを返してきます。接続以後の処理はこの接続IDがデータベース処理のカギとなります。MySQLとの接続が確立した後は、利用するデータベースを選択します。データベースの選択にはmysql_select_dbという関数を使います。
■ 引数
データベース名には利用するデータベース名を指定します。接続IDにはmysql_connectで取得した接続IDを指定します。
■ 戻り値
成功の場合にはtrue、エラーの場合にはfalseを返します。データベースの選択処理時は権限などの関係でエラーが発生することがあります、戻り値はチェックしたほうが良いでしょう。
MySQlからの切断にはmysql_closeという関数を使います。
■ 戻り値
成功の場合にはtrue、エラーの場合にはfalseを返します。切断時にエラーが発生することはほとんどないので、戻り値の判定は省略することがあります。
MySQLに接続した後は、mysql_connectで取得した接続IDを使ってSQLを実行します。SQLの実行にはmysql_queryという関数を使います。■ 引数
SQL文には実行するSQL文を指定します。接続IDにはmysql_connectで取得した接続IDを指定します。
■ 戻り値
成功の場合には結果ID(0以外の値)を返します。失敗した場合はfalse(=0)を返します。この関数で返された結果IDは後のレコードの取得処理などで使います。
SELECT文を実行した場合は、mysql_fetch_arrayという関数で検索結果のレコードを取り出します。
■ 引数
mysql_queryで取得したIDを指定します。
■ 戻り値
検査結果のレコードを連想配列(および配列)で返されます。最終行に達した場合はfalse(= 0)を返します。
SQL実行処理が終わったとは使用した結果セットをクリアします。スクリプト終了時に自動的にクリアされますが、より確実なスクリプトを目指すなら手動でクリアしておくほうが良いでしょう。結果セットのクリアには mysql_free_resultを使います。
■ 引数
mysql_queryで取得した結果IDを指定します。
簡単なSELECT文での結果取得処理は次のようになります。
この例でわかりにくいのは、SELECT文実行処理の中にあるmysql_fetch_arrayでレコードの取得を行う部分だと思います。この例では、取得したレコードを$rowという配列に格納しています。配列というと面倒くさそうですが、ここの内容を取り出すには$row["フィールド名"]というように配列の添え字としてフィールド名を指定するだけです。フィールド名の代わりに数字を指定することもできます。その場合SELECT文の先頭の番号は0になります。
PHPのMySQL関数はデータベースとの処理でエラーが発生した場合、ブラウザに自動的にエラーメッセージを出力します。
この機能はスクリプト作成時には非常に便利です。ただし、実際にサイトを公開中にこのようなエラーが出るのは思わしくない場合があります。そういった場合、自動的にメッセージを出力する機能を停止することができます、停止する方法はMySQLの接続関数mysql_connectの前に@(アットマーク)を付けるだけです。
↓このようにすることで、メッセージの出力が抑止されます。
なお、エラーが発生した場合のエラーメッセージやエラー番号は次の関数で取得できます。エラーメッセージの出力を抑止した場合はこれらの関数でエラーメッセージをハンドリングすると良いでしょう。
■ 戻り値
直前のデータベース処理で発生したエラー番号。
■ 戻り値
直前のデータベース処理で発生したエラーのメッセージ。
例えば独自にエラーメッセージを整形して出力するには次のようなコードを書きます。
RIKO's Trial Page | Shirley's i-box | Shirley's little box