/ / PDO Erreur fatale: Appel à une fonction membre fetchColumn () sur un non-objet - php, pdo

Erreur fatale PDO: Appel à une fonction membre fetchColumn () sur un non-objet - php, pdo

Essayer de passer à PDO ne peut pas "comprendre ce qui ne va pas avec cette

$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();

Réponses:

1 pour la réponse № 1

PDOStatement::execute() retourne soit TRUE ou FALSE (voir ici), alors $res est défini sur un booléen et vous essayez ensuite d’appeler une méthode dessus. Essayez plutôt ceci:

$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 pour la réponse № 2
$q->execute(...)

Renvoie uniquement la valeur booléenne. Bonne façon:

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

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