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数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
Jun 29 PHP
Smarty foreach控制循环次数的实现详解
Jul 03 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
Jul 28 PHP
php中常见的sql攻击正则表达式汇总
Nov 06 PHP
PHP中require和include路径问题详解
Dec 25 PHP
Windows下编译PHP5.4和xdebug全记录
Apr 03 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
Apr 15 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
php curl常用的5个经典例子
Jan 20 PHP
Yii2框架自定义验证规则操作示例
Feb 08 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
Apr 10 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
农民和部队如何穿矿
2020/03/04 星际争霸
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
JavaScript省市联动实现代码
2014/02/15 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
解释&amp;&amp;和||在javascript中的另类用法
2014/07/28 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
jquery隔行换色效果实现方法
2015/01/15 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
python实现程序重启和系统重启方式
2020/04/16 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
营业员个人总结的自我评价
2013/10/25 职场文书
车间班组长的职责
2013/12/13 职场文书
党章学习思想汇报
2014/01/14 职场文书
产品发布会策划方案
2014/05/12 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
民事起诉状范文
2015/05/19 职场文书