Php PDO致命错误:对非对象调用成员函数fetchColumn()

Php PDO致命错误:对非对象调用成员函数fetchColumn(),php,pdo,Php,Pdo,试图转到PDO无法找出这有什么问题 $dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); $sql = "SELECT COUNT(*) FROM users WHERE repo=? AND list=? AND email=?"; $q=$dbh->prepare($sql); $res = $q->execute(array($repo, $list, $email)); $v = $r

试图转到PDO无法找出这有什么问题

$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);  
$sql = "SELECT COUNT(*) FROM users WHERE repo=? AND list=? AND email=?";
$q=$dbh->prepare($sql);
$res = $q->execute(array($repo, $list, $email));
$v = $res->fetchColumn();
仅返回布尔值。 正确的方法:

$q = $dbh->prepare($sql);

if ($q->execute($repo, $list, $email) == TRUE) {
 $v = $q->fetchColumn();
} else {
 //error
}
仅返回布尔值。 正确的方法:

$q = $dbh->prepare($sql);

if ($q->execute($repo, $list, $email) == TRUE) {
 $v = $q->fetchColumn();
} else {
 //error
}

PDOStatement::execute()
返回
TRUE
FALSE
(请参阅),因此将
$res
设置为布尔值,然后尝试对其调用方法。请尝试以下方法:

$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);  
$sql = "SELECT COUNT(*) FROM users WHERE repo=? AND list=? AND email=?";
$q=$dbh->prepare($sql);
if (($res = $q->execute(array($repo, $list, $email))) === FALSE) {
    echo 'Query failed!';
    exit;
}
$v = $q->fetchColumn();

PDOStatement::execute()
返回
TRUE
FALSE
(请参阅),因此将
$res
设置为布尔值,然后尝试对其调用方法。请尝试以下方法:

$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);  
$sql = "SELECT COUNT(*) FROM users WHERE repo=? AND list=? AND email=?";
$q=$dbh->prepare($sql);
if (($res = $q->execute(array($repo, $list, $email))) === FALSE) {
    echo 'Query failed!';
    exit;
}
$v = $q->fetchColumn();
可能重复的bool PDOStatement::execute([array$input_parameters])它不返回混合值,只返回布尔值。(试图对此做一个说明)因此$dbh是一个数据库对象$q是一个语句对象,一旦执行,结果集就会挂起?bool PDOStatement::execute([array$input_parameters])它不返回混合值,只返回布尔值(尝试对此进行说明),因此$dbh是一个数据库对象$q是一个语句对象,一旦执行,结果集就会挂起?