我在使用PHP中的mysqli类时遇到了麻烦,而且我无法在任何地方找到答案。PHP mysqli重新连接问题
在我的脚本中,一个类创建一个mysqli连接,它在整个函数中使用它。之后,这个脚本分叉了。这个连接也是由孩子们使用的,但是当孩子死亡时,我遇到了父母关闭连接的问题(MYSQL Server Has Away)。
在我切换到mysqli(刚刚使用mysql)之前,我只是简单地调用了mysql_ping,以确保在父进程中执行查询之前数据库连接已经存在。 Mysqli有一个类似的ping功能,但它实际上并没有重新连接,如果连接不见了。我尝试使用mysqli.reconnect = ON全局设置,但没有运气(使用php.ini和ini_set)。
php mysql_connect函数允许你获取一个已经存在的连接,所以如果我使用的是mysql而不是mysqli,那么我可以简单地在子进程分叉后重新使用子连接。但mysqli似乎没有任何这样的功能...
我能做的唯一的事情就是调用mysqli-> ping(),如果返回false,则重新连接到父级数据库。这是非常低效率,我宁愿弄清楚如何正确使用mysqli(并且不需要手动重新连接)必须更改回mysql ..
有什么建议吗?
工作。我没有意识到你不能使用ini_set来修改这个变量,并且作为我的天才,我之前在php.ini中添加了这一行,不知道已经有一个mysli.reconnect = Offline文件。但删除那个,只使用mysqli.reconnect工作,并使mysqli-> ping()执行就像mysql_ping。谢谢您的帮助! – 2009-09-24 16:43:36