最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP中使用sleep造成mysql讀取失敗的案例和解決方法

 更新時間:2014年08月21日 08:47:57   投稿:junjie  
這篇文章主要介紹了PHP中使用sleep造成mysql讀取失敗的案例和解決方法,如果遇到這個問題,可能會耗費(fèi)你N久的時間,希望你能快速的搜索到這篇文章吧,需要的朋友可以參考下

近日,由于項目需求
需要用到sleep函數(shù)定時從數(shù)據(jù)庫取一堆數(shù)據(jù)出來去執(zhí)行某些操作。
sleep等待的時間至少有一個小時以上
此前做過測試
用sleep函數(shù)去完成數(shù)小時后執(zhí)行的操作是可行的
 
可邪門的問題出來了
程序用sleep后發(fā)現(xiàn)不能從數(shù)據(jù)庫取到相應(yīng)的信息
把sleep去掉
結(jié)果正常
 
郁悶中。。。
難道sleep影響讀庫操作?。?!
于是為了方便測試
直接來個sleep(10) 十秒后執(zhí)行
結(jié)果能從數(shù)據(jù)庫讀取信息
 
可為什么sleep()一個小時后不能讀取信息呢?
為了測試方便我直接在sleep語句前讀庫一次,sleep后再讀一次庫
如:

復(fù)制代碼 代碼如下:

<?php
require_once('include.php');
// 讀取數(shù)據(jù)庫信息
$data = $db->getList();
print_r($data);
 
// 定時一個小時以后
sleep(3600);
 
// 再讀取一次信息
$data = $db->getList();
print_r($data);
 
?>

結(jié)果發(fā)現(xiàn)
第一次讀庫成功
第二次讀庫為空
 
于是再把sleep改成十秒鐘后再測試一次
復(fù)制代碼 代碼如下:

<?php
require_once('include.php');
// 讀取數(shù)據(jù)庫信息
$data = $db->getList();
print_r($data);
 
// 定時十秒以后
sleep(10);
 
// 再讀取一次信息
$data = $db->getList();
print_r($data);
 
?>

以上結(jié)果
兩次讀庫成功
 
為何一個小時讀庫失敗,十秒鐘卻讀庫成功呢??
我用的是單例數(shù)據(jù)庫操作類
想起一個問題
會不會是數(shù)據(jù)庫連接超時導(dǎo)致讀庫失敗呢?
于是趕緊把此處讀庫操作改成現(xiàn)連
復(fù)制代碼 代碼如下:

<?php
require_once('include.php');
// 讀取數(shù)據(jù)庫信息
$data = getList();
print_r($data);
 
// 定時一個小時以后
sleep(3600);
 
// 再讀取一次信息
$data = getList();
print_r($data);
 
// 讀取數(shù)據(jù)庫信息
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會導(dǎo)致單例類超時問題從而出現(xiàn)執(zhí)行時間過長以后數(shù)據(jù)庫連接可能斷開問題,也就不能讀到數(shù)據(jù)庫信息!

相關(guān)文章

最新評論

唐海县| 合川市| 眉山市| 新津县| 吉林省| 漳州市| 板桥市| 黑龙江省| 教育| 邛崃市| 普兰店市| 邻水| 东港市| 贞丰县| 通辽市| 明溪县| 珠海市| 塔河县| 庆云县| 屏南县| 吉安市| 长宁区| 房山区| 宜兰县| 遵义市| 隆安县| 宿州市| 时尚| 仲巴县| 阿拉尔市| 北流市| 浦江县| 无极县| 枝江市| 辛集市| 宜城市| 弥勒县| 鲁山县| 武山县| 化德县| 马鞍山市|