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访问查询mysql数据的三种方法
Oct 09 PHP
PHP中动态显示签名和ip原理
Mar 28 PHP
在smarty模板中使用PHP函数的方法
Apr 23 PHP
基于PHP遍历数组的方法汇总分析
Jun 08 PHP
解决file_get_contents无法请求https连接的方法
Dec 17 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
Dec 18 PHP
php中的动态调用实例分析
Jan 07 PHP
php模拟post提交数据的方法
Feb 12 PHP
PHP使用pear自带的mail类库发邮件的方法
Jul 08 PHP
java模拟PHP的pack和unpack类
Apr 13 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 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常用函数小技巧
2008/09/11 PHP
Admin generator, filters and I18n
2011/10/06 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
PHP伪造来源HTTP_REFERER的方法实例详解
2015/07/06 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
Javascript中的变量使用说明
2010/05/18 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
Javascript中的getUTCDay()方法使用详解
2015/06/10 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
Python操作mongodb的9个步骤
2018/06/04 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
python 魔法函数实例及解析
2019/09/25 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
django 实现简单的插入视频
2020/04/07 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
html5+css如何实现中间大两头小的轮播效果
2018/12/06 HTML / CSS
团代会宣传工作方案
2014/05/08 职场文书
财务务虚会发言材料
2014/10/20 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
诚信承诺书
2015/01/19 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
小学工作总结2015
2015/05/04 职场文书
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python