[英]Invalid PDO MySQL Statement - Error in Syntax
所以,我有以下PDO语句,它是页面上几个类似构造的语句之一。 其余的工作正常,所以我很困惑为什么这个说明无效的语法。
$test_id = '1';
$option = 'a';
$ab_email = 'test@testing.com';
$stmt = $pdo_db->prepare("INSERT INTO `ab_tests_visitors` (test_id,option,visits,email) VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE email=?");
$stmt->execute(array($test_id,$option,1,$ab_email,$ab_email));
数据库的模式有5列,其中2列是索引。
给出的错误是:
致命错误:带有消息'SQLSTATE [42000]的未捕获异常'PDOException':语法错误或访问冲突:1064 SQL语法中有错误; 查看与您的MySQL服务器版本对应的手册,以便在“选项,访问,电子邮件”附近使用正确的语法VALUES(?,?,?,?)ON DUPLICATE KEY UPDATE email =?' 在第1行'
option
是MySQL关键字 。 如果你想将它用作标识符,请确保始终用反引号包围它(正如你应该使用标识符一样):
$stmt = $pdo_db->prepare("INSERT INTO `ab_tests_visitors` (`test_id`,`option`,`visits`,`email`) VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE `email`=?");
对于这个问题,在你列的名称,必须使用反引号`
周围的列名(ALT + 96)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.