我现在用的是pdo连库,可是这pdo老是报错:Fatal error: Call to a member function query() on a non-object in /www/kms6/System/ZOL/Abstract/Pdo.php on line 153,在网上查了,有很多同样的问题,但没有答案,我的方法是这样的
public function query($sql = '')
{
static $retry_count=0;
$this->chooseDbConn($sql);
$sql .= $this->dbComment;
$query = $this->db->query($sql);
if (!$query or (!$query instanceof PDOStatement))
{
$error = $this->errorInfo();
if(2013==$error[1] || 2006==$error[1])
{
$this->__construct();
if($retry_count++ < 3) return $this->query($sql);
}
echo "$sql 查询数据库失败,重新连接没成功!\r\n";
//最大重试次数限制
trigger_error("{$error[2]}({$error[1]})", E_USER_WARNING);
return false;
}
if (!empty($this->forceReadMaster))
{
$this->forceReadMaster = false;
}
$retry_count = 0;
return $query;
}
每到这里“$query = $this->db->query($sql);”就会报错,但是,如果把服务器重启一下就没问题了,请问哪位高手能帮解答一下,3Q3Q

解决方案 »

  1.   

    $this->db->query($sql) 报  Call to a member function query() 错
    说明对象 $this->db 没有 query 方法
    而这个 $this->db 应该是 PDO 对象,应该有 query 方法
    显然对象 $this->db 没有实例化,或者实例化失败
    你应该在实例化 $this->db 的地方查找原因如果说 如果把服务器重启一下就没问题了
    那么就表示数据库在运行过程中被锁死了,如果频繁发生,则应考虑升级(或降级)数据库版本