为什么会出现“ SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误...”?(PDO-PHP)

which1ispink

我知道这个问题已经被问过很多次了,但是从我看过的许多次来看,他们似乎总是使用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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档