mysql_connect 第二次无效
mysql_connect doesn't work second time
重复未回答:How to reconnect in php adodb after exceptions: Mysql server gone away or Lost connection to MySQL server during query
mysql_connect 第一次工作,但之后就再也没有工作了...
$connectDb = mysql_connect(secret, secret, secret);
mysql_select_db("secret", $connectDb);
$sleepPeriod = 1800;
sleep($sleepPeriod);
while (true) {
$result = mysql_query("good query", $connectDb);
if (!$result) {
if (mysql_error()=='MySQL server has gone away') {
echo "MySql connection was disconnected... reconecting...\n";
$connectDb = mysql_connect(secret, secret, secret);
mysql_select_db("secret", $connectDb);
continue;
} else {
die("Invalid Query: ".__FILE__.':'.__LINE__.' '.mysql_error()."\n");
}
}
//DO STUFF
sleep($sleepPeriod);
}
如果超时或断开连接发生 mysql_connect
似乎会失败并且 mysql_error
会持续 returns "MySQL server has gone away"
,这会导致可能持续数天的无限循环。是否有其他方法可以清除 mysql_error
的错误响应或再次使 mysql_connect
运行 无需手动重新启动此程序或求助于 cron.
我刚刚注意到 mysql_connect
有一个奇怪的(愚蠢的?)参数叫做 new_link
,但是如果 php 的 mysql 代码,那将是一个离谱的设计默认情况下有意禁用超时重新连接...无论如何我都会测试并返回。
mysql_connect
不关心连接是否断开或超时,它将 永远不会 第二次连接,除非您使用参数 [=12] 调用它=] 的值为 true
.
mysql_connect($server,$username,$password,true);
重复未回答:How to reconnect in php adodb after exceptions: Mysql server gone away or Lost connection to MySQL server during query
mysql_connect 第一次工作,但之后就再也没有工作了...
$connectDb = mysql_connect(secret, secret, secret);
mysql_select_db("secret", $connectDb);
$sleepPeriod = 1800;
sleep($sleepPeriod);
while (true) {
$result = mysql_query("good query", $connectDb);
if (!$result) {
if (mysql_error()=='MySQL server has gone away') {
echo "MySql connection was disconnected... reconecting...\n";
$connectDb = mysql_connect(secret, secret, secret);
mysql_select_db("secret", $connectDb);
continue;
} else {
die("Invalid Query: ".__FILE__.':'.__LINE__.' '.mysql_error()."\n");
}
}
//DO STUFF
sleep($sleepPeriod);
}
如果超时或断开连接发生 mysql_connect
似乎会失败并且 mysql_error
会持续 returns "MySQL server has gone away"
,这会导致可能持续数天的无限循环。是否有其他方法可以清除 mysql_error
的错误响应或再次使 mysql_connect
运行 无需手动重新启动此程序或求助于 cron.
我刚刚注意到 mysql_connect
有一个奇怪的(愚蠢的?)参数叫做 new_link
,但是如果 php 的 mysql 代码,那将是一个离谱的设计默认情况下有意禁用超时重新连接...无论如何我都会测试并返回。
mysql_connect
不关心连接是否断开或超时,它将 永远不会 第二次连接,除非您使用参数 [=12] 调用它=] 的值为 true
.
mysql_connect($server,$username,$password,true);