Неустранимая ошибка PDO: вызов функции-члена fetchColumn () для необъекта - PullRequest
1 голос
/ 21 января 2012

Попытка перейти на 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();

Ответы [ 2 ]

1 голос
/ 21 января 2012

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();
0 голосов
/ 21 января 2012
$q->execute(...)

Возвращает только логическое значение.Правильный путь:

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

if ($q->execute($repo, $list, $email) == TRUE) {
 $v = $q->fetchColumn();
} else {
 //error
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...