我有一个长期运行的PHP脚本,它基本上是一个无限循环侦听事件(它是一个xmpp机器人),我启动脚本nohup php bot.php &
.
脚本的原始结构就像
$mysqli = mysqli_connect(...); while(1) { if(event1) { // do database action } else if(event2) { // non database action echo "something"; } }
当我运行脚本时,一切正常.当我几个小时后回来时,如果我发出event2但是在发出带有数据库相关错误的事件1时失败了,那么机器人工作正常(PHP致命错误:在线路n上的非对象上调用成员函数bind_param())
如何保持mysql连接有效或有没有办法检查mysqli连接是否有效,以便我可以重新连接?
你可以ping连接http://php.net/manual/en/function.mysql-ping.php