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 中的批处理的实现
Jun 14 PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
Jul 04 PHP
PHP获取url的函数代码
Aug 02 PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 PHP
ThinkPHP采用原生query实现关联查询left join实例
Dec 02 PHP
PHP+MYSQL实现用户的增删改查
Mar 24 PHP
织梦sitemap地图实时推送给百度的教程
Aug 03 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
PHP实现更改hosts文件的方法示例
Aug 08 PHP
PHP数据库操作三:redis用法分析
Aug 16 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 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数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
PHP实用小技巧之调用录像的方法
2019/12/05 PHP
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
详解滑动穿透(锁body)终极探索
2019/04/16 Javascript
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
浅谈python写入大量文件的问题
2018/11/09 Python
详解python中@的用法
2019/03/27 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
python如何读取bin文件并下发串口
2019/07/05 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
游戏商店:Eneba
2020/04/25 全球购物
WSDL的操作类型主要有几种
2013/07/19 面试题
2014年圣诞节促销方案
2014/03/14 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
预备党员转正意见
2015/06/01 职场文书
2016新年年会主持词
2015/07/06 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
商业计划书格式、范文
2019/03/21 职场文书
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android