带有消息'SQLSTATE [42000]的未捕获异常'PDOException':语法错误或访问冲突:1064

时间:2016-04-17 14:55:11

标签: php mysql pdo

我正在聊天,我偶然发现了一个错误。错误是:

  

致命错误:带有消息'SQLSTATE [42000]的未捕获异常'PDOException':语法错误或访问冲突:1064 SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以便在'INSERT INTO guildchat(guildID,playerID,message,`time`,chattime)VALUES(?,?,'在第1行'C:\ xampp'附近使用正确的语法\ htdocs中\ SF \ sexyutility.php:14   堆栈跟踪:#0 C:\ xampp \ htdocs \ sf \ sexyutility.php(14):PDO-> prepare('SELECT @cht:= ...')#1 C:\ xampp \ htdocs \ req.php (2659):在 14 C:\ xampp \ htdocs \ sf \ sexyutility.php 中引发的chatInsert('tewtewt',53,35)#2} {main}

代码是:

function chatInsert($message, $guild, $player){
    $time = time();
    $chattime = $GLOBALS['db']->prepare("SELECT @cht := Max(chattime) AS chattimer FROM guildchat WHERE guildID = :guild; INSERT INTO guildchat(guildID, playerID, message, `time`, chattime) VALUES(:guild, :player, :msg, :timers, @cht + 1)");
    $chattime->bindParam(":guild", $guild);
    $chattime->bindParam(":player", $player);
    $chattime->bindParam(":msg", $message);
    $chattime->bindParam(":timers", $time);
    $chattime->execute();
    return $chattime->fetch(PDO::FETCH_ASSOC)['chattimer'] + 1;
}

1 个答案:

答案 0 :(得分:0)

您只能在PDO准备的情况下一次执行一个查询。你正在跑两个人。 你必须在两个单独的陈述中这样做。

我想我错了。我没有删除答案,而是将此链接留在此处作为参考。

PDO Support for multiple queries

它得到了支持,但有一些警告。