|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2011-09-20 14:47 UTC] patrick_adrichem at hotmail dot com
Description: ------------ --- From manual page: http://www.php.net/function.mysql-ping#refsect1-function.mysql-ping-description --- Mysql_ping is in my vision used to check wether your connection is still alive, by pinging the server since PHP 5.0.38 this function no longer autoreconnects, so its a real "Check if connection is alive" function. However if the connection is not alive it still throws a warning: mysql_ping(): 8 is not a valid MySQL-Link resource Which is obvious, because thats why you use this function... Test script: --------------- <?php error_reporting(E_ALL); $rConnection = mysql_connect("host", "user", "pass") or die("Could not connect"); sleep(60); if (false === mysql_ping($rConnection)) { echo "Connection gone"; } else { echo "Connection alive"; } Expected result: ---------------- Connection gone Actual result: -------------- mysql_ping(): 8 is not a valid MySQL-Link resource Connection gone PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 30 07:00:02 2025 UTC |
Hi, I wasn't able to reproduce with 5.3-svn and two builds: - mysqlnd - libmysql Here is my mysqlnd output: $ ./php -r 'error_reporting(E_ALL);$c=mysql_connect("127.0.0.1","root","root");var_dump($c);var_dump(mysql_query("set @@wait_timeout=5",$c));sleep(7);var_dump(mysql_ping($c));' resource(6) of type (mysql link) bool(true) Warning: mysql_ping(): MySQL server has gone away in Command line code on line 1 bool(false) Here is my libmysql output: $ ./php -r 'error_reporting(E_ALL);$c=mysql_connect("127.0.0.1","root","root");var_dump($c);var_dump(mysql_query("set @@wait_timeout=5",$c));sleep(7);var_dump(mysql_ping($c));' resource(4) of type (mysql link) bool(true) bool(false) I suspect how it could be shut up, but I can't reproduce it to be able to test it.