所以,我收到以下错误:
Error Number: 2006
MySQL server has gone away
Run Code Online (Sandbox Code Playgroud)
我几乎可以保证这是因为脚本运行需要几十分钟,然后在脚本中间运行更多查询.考虑到这是一个仅限管理员的巨大文件编写脚本,这是可以预期的.(并且完全可以接受)我认为MySQL连接正在关闭,因为PHP/MySQL /某些东西没有打开它.但是,我不能为我的生活弄清楚如何阻止这种超时发生!
我在PHP脚本的顶部有以下内容,但它似乎没有帮助.
ini_set('default_socket_timeout', -1);
ini_set('max_execution_time', -1);
ini_set('memory_limit', -1);
ini_set('mysql.connect_timeout', -1);
Run Code Online (Sandbox Code Playgroud)
知道如何解决这个问题吗?谢谢!
我认为mysql_connect在你打电话之前,每次都有一个可行的选择mysql_query.这可确保在每次查询之前都会有实时连接.
但更好的方法是首先检查连接状态,然后在必要时重新连接.mysql_ping用于检查连接状态,因此您可以使用它来检查是否需要重新连接.@ galador 答案中的示例代码.
谢谢@diolemo和@galador.