我知道这个问题已经被问过很多次了,但是从我看过的许多次来看,他们似乎总是使用mysql保留关键字作为表名或列名,或者实际上在这里或那里都存在语法错误,但是我不认为我有要么,所以我将不胜感激,帮助我弄清楚为什么得到这个。这是导致错误的函数:
public function user_exists($db, $username) {
$query = $db->prepare("SELECT COUNT('id') FROM 'users' WHERE 'username' = ?");
$query->bindValue(1, $username);
try {
$query->execute();
$rows = $query->fetchColumn();
if($rows == 1) {
return false;
}
else {
return true;
}
}
catch(PDOException $e) {
die($e->getMessage());
}
}
然后,当使用“ anything”作为其$ username参数调用它时,这是我得到的全部错误:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQLsyntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''users' WHERE 'username'= anything' at line 1
使用反引号转义表或列名,而不是引号。
SELECT COUNT(`id`) FROM `users` WHERE `username` = ?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句