/ / PDO Fatálna chyba: volanie na funkciu člena fetchColumn () na non-object - php, pdo

PDO Fatálna chyba: Volanie na funkciu člena fetchColumn () na non-object - php, pdo

Pokúšať sa presunúť na CHOP, nemôžem zistiť, čo s tým nie je správne

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

odpovede:

1 pre odpoveď č. 1

PDOStatement::execute() vráti sa TRUE alebo FALSE (pozri tu), tak $res je nastavený na boolean a potom sa pokúsite zavolať metódu na to. Skúste to namiesto toho:

$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 pre odpoveď č. 2
$q->execute(...)

Vráti iba hodnotu booleov. Správny spôsob:

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

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