3
我有一个长时间运行的php脚本,它基本上是一个监听事件(它是一个xmpp bot)的无限循环,我用nohup php bot.php &
开始脚本。检查mysql连接是否有效
脚本的原始结构是这样
$mysqli = mysqli_connect(...);
while(1) {
if(event1) {
// do database action
} else if(event2) {
// non database action
echo "something";
}
}
当我运行该脚本,一切工作正常开始。当我几个小时后回来时,如果我发出event2但是发出事件1时发生数据库相关错误(PHP致命错误:调用在线非对象上的成员函数bind_param()n)
如何保持mysql连接有效,或者有办法检查mysqli连接是否有效,这样我就可以重新连接了吗?
谢谢,mysqli_ping工作。我想补充一点,我必须在我的php.ini中添加mysqli.reconnect = On,以便在关闭时自动重新建立连接。 (注意:ini_set在这种情况下不起作用!!) – Gunjan 2010-07-20 08:06:13
@Gunjan非常感谢您的评论 - 它帮助我解决了我的问题。我添加的php.ini指令是'mysqli.reconnect =“1”',并且不需要在代码中添加'$ mysqli-ping()'。 – user1477388 2014-06-15 10:51:08