Search
  1. mysql_connect〔MySQL接続を開く〕
  2. mysql_pconnect〔MySQLサーバーへの持続的な接続を開く〕
  3. mysql_ping〔サーバーとの接続状況を調べ、接続されていない場合は再接続する〕
  4. mysql_select_db〔データベース選択〕
  5. mysql_close〔MySQL接続を閉じる〕

mysql_connect
MySQL接続を開く

unknown

resource mysql_connect ( [ string サーバー [, string $ユーザー名 [, string $パスワード [, bool $new_link[, int $client_flags]]]]] )

MySQLサーバーへ接続を開きます。あるいは再利用します。
成功した場合にMySQLの接続ID、失敗した場合にFALSEを返します。

失敗した場合にエラーメッセージが表示されないようにするには、@mysql_connect();のように、関数名の頭にエラー演算子(@を付けます。

オプション引数を省略した場合は、以下のデフォルト値が使用されます。

オプション引数デフォルト値
サーバー'localhost:host:3306'
ユーザー名サーバプロセスの所有ユーザー名
パスワード空のパスワード('')

オプションの第1引数サーバーには、MySQLサーバーを指定します。 "hostname:port" のようにポート番号も指定可能です。 localhostの場合、ソケットへのパス ";/path/to/socket" も指定可能です。

同じ引数で2回この関数がコールされた場合、2回目は新しい接続が確立されるのではなく、既にオープンされた接続IDが返ります。 オプションの第4引数new_link(PHP4.2.0~)にTRUEを指定すれば、新しい接続が確立されます。

オプションの第5引数client_flags(PHP4.3.0~)には以下の定数の組合せを指定します。

定数説明
MYSQL_CLIENT_SSLSSL による暗号化を使用
MySQL_CLIENT_COMPREESS圧縮プロトコルを使用する
MYSQL_CLIENT_IGNORE_SPACE関数名の後ろのスペースを許可する
MYSQL_CLIENT_INTERACTIVEinteractive_timeoutで指定された秒数の無通信が続くまで接続を閉じない

MySQLサーバーへの接続は、スクリプトの実行終了時と同時に閉じられるので、mysql_close()関数で明示的に閉じる必要はありません。

<?
#サーバー名で接続する場合
/* MySQL接続開始 */
$dbc=@mysql_connect("localhost","root","");
if(!$dbc){
    die("MySQL接続失敗: ".mysql_error());
}
/* MySQL接続終了(自動的に閉じられるので省略可)*/
mysql_close($dbc);
?>

<?
#hostname:port構文の使用例(mydomain.com のポート 3306 に接続する場合)
/* MySQL接続開始 */
$dbc=mysql_connect("mydomain.com:3306","root","");
if(!$dbc){
    die("MySQL接続失敗: ".mysql_error());
}
/* MySQL接続終了(自動的に閉じられるので省略可)*/
mysql_close($dbc);
?>

<?
#localhost のポート 3306 に接続する場合
$dbc=mysql_connect("localhost:3306""root","");
if(!$dbc){
    die("MySQL接続失敗: ".mysql_error());
}
/* MySQL接続終了(自動的に閉じられるので省略可)*/
mysql_close($dbc);
?>

mysql_pconnect
MySQLサーバーへの持続的な接続を開く

unknown

resource mysql_pconnect ( [ string サーバー名[, string $ユーザー名[, string $パスワード[, int $client_flags]]]] )

MySQLサーバーへの持続的な接続を開きます。
成功した場合に持続的な接続ID、失敗した場合にFALSEを返します。

失敗した場合にエラーメッセージが表示されないようにするには、@mysql_pconnect();のように、関数名の頭にエラー演算子(@を付けます。

mysql_connect()関数と動作は似ていますが、2つの相違点があります。

  1. この関数は接続時に同じホスト、ユーザー名、パスワードを有する持続的な接続が、既に開かれているかどうか調べます。 見つかった場合には、新しく接続を開かず、既に開かれている接続IDが返されます。

  2. スクリプトの実行が終了してもMySQLサーバーとの接続は閉じられません! 将来再利用されるために、接続が開かれたままになります。 この接続は、mysql_close()関数で閉じる事はできません。

オプションの第1引数サーバーには、MySQLサーバーを指定します。
"hostname:port"のようにポート番号も指定可能です。
localhostの場合、ソケットへのパス";/path/to/socket"も指定可能です。

オプションの第2引数ユーザー名のデフォルト値は、サーバープロセスの所有ユーザー名になります。

オプションの第3引数パスワードのデフォルト値は、空のパスワードです。
オプションの第4引数client_flagsには以下の定数の組合せを指定します。

定数説明
MYSQL_CLIENT_SSLSSL による暗号化を使用
MySQL_CLIENT_COMPREESS圧縮プロトコルを使用する
MYSQL_CLIENT_IGNORE_SPACE関数名の後ろのスペースを許可する
MYSQL_CLIENT_INTERACTIVEinteractive_timeoutで指定された秒数の無通信が続くまで接続を閉じない
<?
/* MySQLサーバーへの持続的な接続 */
$dbc=mysql_pconnect("localhost","root","");
if(!$dbc){
    die('MySQL接続失敗: '.mysql_error());
}
?>

mysql_ping
サーバーとの接続状況を調べ、接続されていない場合は再接続する

unknown

bool mysql_ping ( [ resource 接続ID ] )

MySQLサーバーとの接続が有効かどうか調べます。接続されていない場合は、自動的に再接続されます。 有効な場合にTRUE、そうでない場合にFALSEを返します。

この関数はアイドル期間が長いスクリプトで、サーバーが接続を切断したかどうか、確認するために使います。

オプションの第1引数接続IDが指定されていない場合は、mysql_connect()関数により直近に開かれた接続が使用されます。 接続が確立されていない場合は、引数を指定せずmysql_connect()関数がコールされた時と同様に接続を確立します。 それでも接続が確立できない場合は、E_WARNINGレベルのエラーが発生します。

<?
/* MySQL接続開始 */
$dbc=mysql_connect("localhost","root","") or die("MySQL接続失敗: ".mysql_error());

/* データベース選択 */
mysql_select_db("db_customer",$dbc) or die("データベース選択失敗: ".mysql_error());

/* 時間のかかるクエリと仮定 */
$sql1="SELECT * FROM tbl_customer";
$res1=mysql_query($sql1,$dbc) or die("1つ目のクエリ失敗: ".mysql_error());

/* MySQLサーバーの接続状況を調べる */
if(!mysql_ping($dbc)){
    echo "1つ目のクエリ後、接続が切断されました。";
    exit;
}
/* 結果保持用メモリ解放 */
mysql_free_result($res);

/* 接続が有効と確認されたため、別のクエリを実行 */
$sql2="SELECT * FROM table_sample2";
$res2=mysql_query($sql2) or die("2つ目のクエリ失敗: ".mysql_error());
?>

mysql_select_db
データベース選択

unknown

bool mysql_select_db ( string $データベース名 [, resource 接続ID ] )

指定した接続IDが指すデータベースを選択します。
成功した場合にTRUE、失敗した場合にFALSEを返します。

オプションの第1引数接続IDが指定されていない場合は、mysql_connect()関数により直近に開かれた接続が使用されます。 接続が確立されていない場合は、引数を指定せずmysql_connect()関数がコールされた時と同様に接続を確立します。 それでも接続が確立できない場合は、E_WARNINGレベルのエラーが発生します。

<?
/* MySQL接続開始 */
$dbc=mysql_connect("localhost","root","") or die("MySQL接続失敗: ".mysql_error());

/* データベース選択 */
$db_selected=mysql_select_db("db_sample",$dbc);
if(!$db_selected){
    die('データベース選択失敗: '.mysql_error());
}
/* クエリ送信 */
$sql="SELECT age FROM tbl_sample";
$res=mysql_query($sql,$dbc) or die("クエリ失敗: ".mysql_error());
while($dat=mysql_num_rows($res)){
    echo $dat[0]."<br>";
}
?>

mysql_close
MySQL接続を閉じる

unknown

bool mysql_close ( [ resource 接続ID ] )

指定した接続IDが指すmysql_connect()関数により開かれた非持続的な接続を閉じます。 成功した場合にTRUE、失敗した場合にFALSEを返します。

オプションの第1引数接続IDが指定されていない場合は、mysql_connect()関数により直近に開かれた接続が使用されます。 接続が確立されていない場合は、引数を指定せずmysql_connect()関数がコールされた時と同様に接続を確立します。 それでも接続が確立できない場合は、E_WARNINGレベルのエラーが発生します。

  • mysql_pconnect()関数で開かれた持続的な接続は、この関数では閉じられません。
  • 非持続的接続(mysql_connect()関数で開かれた接続)はスクリプト実行終了時に自動的に閉じられるので、この関数を使って明示的に閉じる必要はありません。
<?
/* MySQL接続開始 */
$dbc=mysql_connect("localhost","root","") or die("MySQL接続失敗: ".mysql_error());

/* ・・・処理・・・ */

/* MySQL接続終了(自動的に閉じられるため省略可)*/
mysql_close($dbc);
?>

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women