PHP在睡眠中MySQL读取失败的案例及解决方案
最近,由于项目要求使用休眠功能从数据库获取一堆数据来执行一些操作是很有必要的。
睡眠至少要等一个小时。
在测试完成之前
用睡眠功能进行几个小时的手术是可行的。
能找出问题所在。
程序使用睡眠发现它不能从数据库获得相应的信息。
除去睡觉
结果是正常的。
忧郁。
睡眠影响阅读库操作吗!!!
为了便于测试
直接到睡眠(10)十秒后执行
可以从数据库中读取结果。
但是为什么一小时内睡眠不能读取信息呢
为了方便测试,我在睡觉前读一次图书馆,在睡觉后再看一遍图书馆。
如:
复制代码代码如下所示:
< PHP
require_once('include。php);
读取数据库信息
$data =美元->列表(dB);
print_r($数据);
时间一小时后
睡眠(3600);
要阅读邮件
$data =美元->列表(dB);
print_r($数据);
>
结果发现
一读图书馆成功
二读图书馆是空的。
然后把睡眠时间改为十秒,然后再测试一遍。
复制代码代码如下所示:
< PHP
require_once('include。php);
读取数据库信息
$data =美元->列表(dB);
print_r($数据);
十秒之后
睡眠(10);
要阅读邮件
$data =美元->列表(dB);
print_r($数据);
>
以上结果
两读图书馆成功
为什么图书馆只需一小时十秒就能读到图书馆
我使用的是一个数据库操作类
想出一个问题
是数据库连接超时导致库失败吗
所以我们很快就改变了图书馆的运作。
复制代码代码如下所示:
< PHP
require_once('include。php);
读取数据库信息
为数据列表();
print_r($数据);
时间一小时后
睡眠(3600);
要阅读邮件
为数据列表();
print_r($数据);
读取数据库信息
功能列表(){
为PDO =新PDO('mysql:主机为localhost;北京测试,'root ','root);
结果=美元美元PDO ->查询('select *表);
返回的结果-> fetchall(PDO::fetch_assoc);
}
>
测试成功!!
结果表明,睡眠会导致一类超时问题,这样当执行时间过长时,数据库连接可能断开连接,数据库信息无法读取!