Mysql PDO错误-语法错误或访问冲突:1064
我试图运行一个查询,但看起来我与保留关键字冲突。我不知道冲突在哪里。我对这方面还比较陌生,所以任何帮助都将不胜感激 我已经试过把所有的“行”改成“我的行”——似乎没有什么不同 我的代码:Mysql PDO错误-语法错误或访问冲突:1064,mysql,pdo,syntax-error,reserved-words,Mysql,Pdo,Syntax Error,Reserved Words,我试图运行一个查询,但看起来我与保留关键字冲突。我不知道冲突在哪里。我对这方面还比较陌生,所以任何帮助都将不胜感激 我已经试过把所有的“行”改成“我的行”——似乎没有什么不同 我的代码: $substmt = $pdo->prepare(' SELECT `sentences_index`.`row_id` AS id,
$substmt = $pdo->prepare(' SELECT
`sentences_index`.`row_id` AS id,
`sentences_index`.`id` AS char_id,
`sentences_index`.`word`,
`definitions`.`pinyin`,
`definitions`.`def1` AS definition,
`sentences`.`sentenceEN`
FROM `sentences_index`
LEFT JOIN `definitions` ON `sentences_index`.`word` = `definitions`.`traditional`
LEFT JOIN `sentences` ON `sentences_index`.`row_id` = `sentences`.`id`
WHERE `sentences_index`.`row_id` = :row
GROUP BY `sentences_index`.`word`
ORDER BY char_id ASC
');
$substmt->execute(['row' => $row]);
任何帮助都将不胜感激
编辑:以下是错误消息:
致命错误:未捕获PDO异常:SQLSTATE[42000]:语法错误或
访问冲突:1064您的SQL语法有错误;检查
与右边的MySQL服务器版本相对应的手册
使用near'AS id、句子索引
id
作为字符id的语法,
定义
中第17行的“p”
/var/www/html/assets/other/custom_functions.php:520堆栈跟踪:#0
/var/www/html/assets/other/custom_functions.php(520):
PDO->prepare('\t选择\n\t\t\t\t\t…)\1
/var/www/html/index.php(216):gc_get_示例_语句(Object(PDO)),
“\xE8\xAF\xB4\xE8\xAF\x9D”,“simplified”)#2{main}被抛出
/var/www/html/assets/other/custom_functions.php,第520行
我知道有一个类似的问题。我已经阅读了它,并试图在我的代码中找到同样的问题。我找不到问题所在,这就是我问这个问题的原因
Edit2:有趣的是,这个错误不是在PHP7.0.0中抛出的,而是在PHP7.0.8中抛出的查看完整的错误消息远比一条错误消息的摘要有用。包括行号,我看不到任何关键字,所有标识符都被引用。将
$pdo
对象设置为抛出异常,您将返回完整的错误消息<代码>$pdo->setAttribute(pdo::ATTR_ERRMODE,pdo::ERRMODE_异常)代码>在发布问题之前,您至少应该找出导致问题的查询。不要使用“类型”,因为它是保留的。可能重复的