php 链接mysql 超时处理

5 篇文章 0 订阅
<?php


$conn = mysql_connect($dbhost, $dbuser, $dbpw) or die('Could not connect: ' . mysql_error());
mysql_select_db($dbname) or die('Could not select database');
mysql_query("set names 'utf8'");


echo "other work of waste time \n";
sleep("20"); // 其他费时工作


//检查数据库是否失去连接 如果数据库 $conn 超时失效则重新联接
$checkDbLink = mysql_query("set names 'utf8'",$conn);
if(!$checkDbLink){
getDbLink($conn);
}

$sqlData = "select id,dateline,page_num,top_channel_id from cms_article where id > 5 limit 1 ";
$rs = mysql_query($sqlData,$conn);
$line = mysql_fetch_array($rs);
echo $line['id']."\n";


function getDbLink(&$conn){
global $dbhost, $dbuser, $dbpw,$dbname;
mysql_close($conn); // 失去数据库连接,如果要重建连接必须要 关闭原来的资源然后再重新建立
$conn = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpw) or die('Could not connect: ' . mysql_error());
mysql_select_db($dbname,$conn) or die("Could not select database ".mysql_error());

}


mysql_close($conn);


?>



处理成函数:

// 检查数据库是否失去连接,如果失去连接则重新建立链接
function checkDbLink($dbhost, $dbuser, $dbpw,$dbname,&$conn){
$rsCheck = mysql_query("set names 'utf8'",$conn);
if(!$rsCheck){
mysql_close($conn); $conn = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpw) or die('Could not connect: ' . mysql_error());
mysql_select_db($dbname,$conn) or die("Could not select database at common.php ".mysql_error());
mysql_query("set names 'utf8'",$conn);
}
}



        private function dbQuery($sql) {
try{
$result = mysql_query($sql, $this->conn);
}catch (Exception $e) {
$mysqlErrno = mysql_errno();
if(in_array($mysqlErrno, array(2006,2013))) {
$this->getConn();
$result = $this->dbQuery($sql);
}
}

return $result;
}



或者最简单在脚本最前面加一条语句
mysql_query("set wait_timeout = 50");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值