我在浏览器中收到的文字:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''users' WHERE 'username'= 'cAASDASD'' at line 1
也许是这部分? 否则我没有'在哪里'。
public function user_exists($username) {
$query = $this->db->prepare("SELECT COUNT('id') FROM 'users' WHERE 'username'= ?");
$query->bindValue(1, $username);
try {
$query->execute();
$rows = $query->fetchColumn();
if($rows == 1) {
return true;
}
else {
return false;
}
}
catch (PDOException $e) {
die($e->getMessage());
}
}
答案 0 :(得分:1)
在您运行的真实代码中,'single quotes'
在表名周围使用,而不是像在此处发布的一个反引号
由于wrong way of using exceptions,你不知道这个错误发生在哪里。因此,只要您删除无用的try-catch,就会立即通知您发生错误的确切位置
答案 1 :(得分:0)
错误与您正在显示的PHP代码片段无关。根据错误消息,您似乎正在使用以下内容:
$query = $this->db->prepare("SELECT * FROM 'users' WHERE 'username' = ?");
这里,表和列都使用单引号而不是后标记。你想要的是:
$query = $this->db->prepare("SELECT * FROM `users` WHERE `username` = ?");