PHPとデータベース - MySQL
提供: MochiuWiki : SUSE, EC, PCB
概要
PHPにおいて、MySQLへの接続とCRUDの手順を記載する。
MySQLの接続・切断
MySQLの接続
MySQLへ接続するには、mysql_connect関数を使用する。
resource mysql_connect([string server [, string username [, string password [, bool new_link [, int client_flags]]]]])
MySQLサーバへ接続または再利用する。
引数:
server 接続先のMySQLサーバ。
<ホスト名またはIPアドレス>:<ポート番号>のように、ポート番号を指定することが可能であり、
ホスト名またはIPアドレスでは、:/path/to/socketのようにソケットへのパスを指定することも可能である。
<ホスト名またはIPアドレス>または<ホスト名またはIPアドレス>:<ポート番号>を指定する場合、
MySQLクライアントライブラリはそれをオーバーライドして、ローカルソケット(Windowsでは名前付きパイプ)に接続する。
username ユーザ名
password パスワード
new_link 例えば、同じ引数で2度mysql_connect関数を実行する場合、
2度目は新規のリンクが確立されるのではなく、代わりに既に接続しているリンクのリンクIDを返す。
new_linkはこの動作を変更して、既にmysql_connect関数が同じ引数で実行されている場合でも、常に新規のリンクを開く。
client_flags 圧縮プロトコルやSSL暗号化(Windows版は未対応)等の引数の指定
戻り値:
成功する場合はMySQLのリンクID、失敗する場合はfalseを返す。
以下の例では、MySQLサーバへ接続している。
$link = mysql_connect('localhost', 'user', 'pass'); // ホスト名のみ
$link = mysql_connect('example.com:3307', 'user', 'pass'); // ホスト名とポート番号
$link = mysql_connect('127.0.0.1:3307', 'user', 'pass'); // IPアドレスとポート番号
$link = mysql_connect('/tmp/mysql', 'user', 'pass'); // ソケットのみ
MySQLの切断
MySQLへの接続を切断するには、mysql_close関数を使用する。
bool mysql_close([resource link_identifier]) link_identifierが指すMySQLへの非持続的リンクを閉じる。 link_identifierを省略する場合、最後に開いたリンクが使用される。 持続的ではないリンクは、スクリプトの実行終了時に自動的に閉じるため、通常は、mysql_close関数は不要である。 引数: link_identifier MySQLのリンクID 戻り値: 成功する場合はtrue、失敗する場合はfalseを返す。
以下の例では、MySQLへの接続を明示的に切断している。
$link = mysql_connect('localhost', 'user', 'pass');
// ...MySQLのCRUD処理
mysql_close($link);
エラー処理
MySQLに対する処理でエラーが発生する場合、mysql_error関数を使用して、エラーメッセージを取得することができる。
string mysql_error([resource link_identifier]) 直近のMySQL関数からのエラー文字列を返す。 MySQLのバックエンドのエラーは警告が発生しないため、 代わりに、mysql_error関数を使用してエラー文字列を取得する。 引数: link_identifier MySQLのリンクID 戻り値: 直近のMySQL関数からのエラー文字列を返します。エラーが発生していない場合は、空文字列を返す。
以下の例では、mysql_connect関数でエラーが発生した場合にエラーメッセージを取得している。
$link = mysql_connect('localhost', 'user', 'pass');
if(!$link)
{
print(mysql_error());
}
// ...MySQLに対するCRUD処理
mysql_close($link);
MySQLの接続に失敗する場合、その後のMySQLに対する処理を実行できないため、
exit関数またはdie関数を使用して、プログラムを終了する。
exit関数およびdie関数の詳細は、PHPの基礎 - PHPの終了処理を参照すること。
$link = mysql_connect('localhost', 'user', 'pass');
if(!$link)
{
die('接続失敗です。'.mysql_error());
}
// ...MySQLに対するCRUD処理
mysql_close($link);
以下の例では、MySQLの接続と切断を実行している。
<?php
$link = mysql_connect('localhost', 'testuser', 'testuser');
if(!$link)
{
die('接続失敗です。'.mysql_error());
}
print('<p>接続に成功しました。</p>');
// ...MySQLに対するCRUD処理
$close_flag = mysql_close($link);
if($close_flag)
{
print('<p>切断に成功しました。</p>');
}
?>