-2
$stmt = $dbo->getConnection()->prepare("SELECT count(character_name)
            FROM playercharacter
            JOIN character
            ON (playercharacter.character_id = character.character_id)
            WHERE user_id = :user_id");

给我

致命错误:未捕获异常 'PDOException' 并带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 /home/content/50/10835750/html/dogdays/game/ 中的第 3 行的“character ON (playercharacter.character_id = character.character_id)”附近使用正确的语法private.php:43 堆栈跟踪:#0 /home/content/50/10835750/html/dogdays/game/private.php(43): PDOStatement->execute(Array) #1 {main} 抛出 /home/content /50/10835750/html/dogdays/game/private.php 在第 43 行

4

1 回答 1

3

character是一个保留关键字,恰好是您的表的名称。为了避免语法错误,表名应该使用反引号进行转义。前任,

SELECT  count(character_name) 
FROM    playercharacter JOIN `character` 
            ON (playercharacter.character_id = `character`.character_id) 
WHERE   user_id = :user_id

如果您有权更改表,请更改不在保留关键字列表中的表名,以防止将来再次出现相同的错误。

于 2013-05-07T14:04:03.153 回答