gpt4 book ai didi

php - 无效的 PDO MySQL 语句 - 语法错误

转载 作者:行者123 更新时间:2023-11-29 08:09:24 25 4
gpt4 key购买 nike

因此,我有以下 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 列是索引。

  • visitor_id 是 int(10) 和 auto_increment,也是主要的
  • test_id 为 int(10)
  • 选项是 varchar(100)
  • 访问次数为 int(10),默认值为 1
  • 电子邮件是 varchar(255) 并且是唯一的

给出的错误是:

fatal error :未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 'option,visits,email) VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE email=?' 附近使用的正确语法在第 1 行'

最佳答案

选项MySQL keyword 。如果您想将其用作标识符,请确保始终用反引号将其括起来(就像您应该对标识符所做的那样):

$stmt = $pdo_db->prepare("INSERT INTO `ab_tests_visitors` (`test_id`,`option`,`visits`,`email`) VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE `email`=?");

关于php - 无效的 PDO MySQL 语句 - 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21939261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com