有一些关于使用mysql.connect_timeout的MySQL连接设置超时的帖子。我想知道从PHP设置的超时是否只会使到MySQL的初始连接超时,或者对于到数据库的特定查询有效?
我的例子是,我在顶部有一个连接到MySQL的页面,然后我一个接一个地对MySQL执行3-4个查询。执行第一个和第二个查询只需要1-2秒,而执行第三个查询需要20秒。现在,在第三次查询耗时超过20秒的情况下,我想调用超时。因此,这里的问题是,从PHP设置这个time out适用于到数据库的初始连接,或者它也适用于每个后续查询(独立地)。如果是较晚的情况,那么我如何将其设置为第三次查询的20秒后超时?
发布于 2012-03-08 20:57:08
connect_timeout参数仅在连接时有效。检查您的DB服务器是否在20秒左右可以访问是很有用的。连接后,指定的超时将不再有效。
我没有在mysql官方手册页面上找到任何查询超时参数:http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html,所以我认为这是不可能的。
发布于 2013-08-16 22:36:57
查看它:
set_time_limit(0);
ini_set('mysql.connect_timeout','0');
ini_set('max_execution_time', '0'); 发布于 2012-12-03 11:23:56
sigalarm是你的朋友。您可以设置警报,并使用信号处理程序来检测警报。
http://php.net/manual/en/function.pcntl-alarm.php
https://stackoverflow.com/questions/9562124
复制相似问题