PHP中使用sleep造成mysql读取失败的案例和解决方法


Posted in PHP onAugust 21, 2014

近日,由于项目需求
需要用到sleep函数定时从数据库取一堆数据出来去执行某些操作。
sleep等待的时间至少有一个小时以上
此前做过测试
用sleep函数去完成数小时后执行的操作是可行的
 
可邪门的问题出来了
程序用sleep后发现不能从数据库取到相应的信息
把sleep去掉
结果正常
 
郁闷中。。。
难道sleep影响读库操作!!!
于是为了方便测试
直接来个sleep(10) 十秒后执行
结果能从数据库读取信息
 
可为什么sleep()一个小时后不能读取信息呢?
为了测试方便我直接在sleep语句前读库一次,sleep后再读一次库
如:

<?php

require_once('include.php');

// 读取数据库信息

$data = $db->getList();

print_r($data);

 

// 定时一个小时以后

sleep(3600);

 

// 再读取一次信息

$data = $db->getList();

print_r($data);

 

?>

结果发现
第一次读库成功
第二次读库为空
 
于是再把sleep改成十秒钟后再测试一次
<?php

require_once('include.php');

// 读取数据库信息

$data = $db->getList();

print_r($data);

 

// 定时十秒以后

sleep(10);

 

// 再读取一次信息

$data = $db->getList();

print_r($data);

 

?>

以上结果
两次读库成功
 
为何一个小时读库失败,十秒钟却读库成功呢??
我用的是单例数据库操作类
想起一个问题
会不会是数据库连接超时导致读库失败呢?
于是赶紧把此处读库操作改成现连
<?php

require_once('include.php');

// 读取数据库信息

$data = getList();

print_r($data);

 

// 定时一个小时以后

sleep(3600);

 

// 再读取一次信息

$data = getList();

print_r($data);

 

// 读取数据库信息

function getList(){

        $pdo = new PDO('mysql:host=localhost;dbname=test','root','root');

        $result = $pdo->query('select * from tables');

        return $result->fetchAll(PDO::FETCH_ASSOC);

}

?>

测试成功!!
原来sleep会导致单例类超时问题从而出现执行时间过长以后数据库连接可能断开问题,也就不能读到数据库信息!
PHP 相关文章推荐
PHP开发文件系统实例讲解
Oct 09 PHP
Adodb的十个实例(清晰版)
Dec 31 PHP
php读取mysql乱码,用set names XXX解决的原理分享
Dec 29 PHP
php中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
LotusPhp笔记之:Logger组件的使用方法
May 06 PHP
PHP使用GIFEncoder类处理gif图片实例
Jul 01 PHP
php基于base64解码图片与加密图片还原实例
Nov 03 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
Dec 17 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
Jul 18 PHP
关于PHP内置的字符串处理函数详解
Feb 04 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
php 中的信号处理操作实例详解
Mar 04 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 #PHP
ThinkPHP登录功能的实现方法
Aug 20 #PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 #PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 #PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 #PHP
PHP面向对象程序设计之接口用法
Aug 20 #PHP
从零开始学YII2框架(三)扩展插件yii2-gird
Aug 20 #PHP
You might like
php 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
AngularJS语法详解
2015/01/23 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
深入理解Python分布式爬虫原理
2017/11/23 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
Python如何定义有默认参数的函数
2020/08/10 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
美国网上书店:Barnes & Noble
2018/08/15 全球购物
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
党委书记岗位职责
2013/11/24 职场文书
大学生饮食配送创业计划书
2014/01/04 职场文书
美容院考勤制度
2014/01/30 职场文书
投标服务承诺书
2014/05/28 职场文书
商务英语专业求职信
2014/06/26 职场文书
群众路线剖析材料
2014/09/30 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
党纪处分决定书
2015/06/24 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
Django展示可视化图表的多种方式
2021/04/08 Python
关于EntityWrapper的in用法
2022/03/22 Java/Android