繁体   English   中英

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

[英]Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064

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

致命错误 :带有消息'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:= ...')#1C :\\ xampp \\ htdocs \\ req.php(2659):chatInsert('tewtewt',53,35)#14 {main}在第14行的C:\\ xampp \\ htdocs \\ sf \\ sexyutility.php中抛出

代码是:

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;
}

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

我想我错了。 我不会删除答案,而是将此链接作为参考。

PDO支持多个查询

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM