Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


23.8.7.51 mysql_ping()

int mysql_ping(MYSQL *mysql)

説明

サーバーへの接続が機能しているかどうかをチェックします。接続が切断され、自動再接続が有効にされている場合、再接続の試みが行われます。接続が切断し、自動再接続が無効にされている場合、mysql_ping() はエラーを返します。

自動再接続はデフォルトで無効にされています。それを有効にするには、MYSQL_OPT_RECONNECT オプションを使用して mysql_options() を呼び出します。詳細については、セクション23.8.7.49「mysql_options()」を参照してください。

mysql_ping() は、長い間アイドルのままでいるクライアントで、サーバーが接続を閉じているかどうかをチェックし、必要に応じて再接続するために使用できます。

mysql_ping() が再接続させる場合、その明示的な兆候はありません。再接続が行われるかどうかを判断するには、mysql_ping() を呼び出す前に mysql_thread_id() を呼び出して、元の接続識別子を取得してから、再度 mysql_thread_id() を呼び出して、識別子が変更されているかどうかを確認します。

再接続が行われた場合、接続の一部の特性がリセットされます。これらの特性の詳細については、セクション23.8.16「自動再接続動作の制御」を参照してください。

戻り値

サーバーへの接続がアクティブである場合はゼロ。エラーが発生した場合、ゼロ以外。ゼロ以外の戻り値は、MySQL サーバー自体が停止しているかどうかを示していません。ネットワークの問題などのその他の理由で接続が切断している可能性があります。

エラー
  • CR_COMMANDS_OUT_OF_SYNC

    コマンドが正しくない順番で実行されました。

  • CR_SERVER_GONE_ERROR

    MySQL サーバーが存在しなくなりました。

  • CR_UNKNOWN_ERROR

    不明なエラーが発生しました。


User Comments
  Posted by Jonah Safar on December 31, 2003
An important thing to keep in mind, especially if you're using threads to keep a database connection open/persistant:

A call to mysql_ping, even if the connection never went down, will wipe the results of a mysql_affected_rows, if it somehow occurs between a command execution, and the call.

Symptom: mysql_affected_rows returns -1, when you expect a different number.

(Note - there could be other reasons, this is just one way to guarantee this behavior.)
Sign Up Login You must be logged in to post a comment.