【发布时间】:2018-06-08 15:31:50
【问题描述】:
$sql = "INSERT INTO couponentries (itemid, coupon, MSISDN, channel, result)
VALUES ('".$itemid."','".$CouponCode."', '".$MSISDN."','".$channel."','".$status."')
ON DUPLICATE KEY UPDATE couponentries.result = VALUES('Invalid couponcode[ERR: Already exists]')";
我正在尝试将新项目从 PHP 网络表单插入到 MySQL 数据库。如果我插入重复的行,我会将结果更新为错误消息。这是我的代码。它一直给我一个语法错误。
错误:无法执行您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“无效优惠券代码[ERR:已存在]”附近使用正确的语法
【问题讨论】:
-
... UPDATE couponentries.result = 'Invalid couponcode[ERR: Already exists]' -
ON DUPLICATE KEY UPDATE不是您尝试的正确工具。恐怕——这根本不可能。您只是不能插入重复项。 -
@PaulSpiegl 如果只有一个字段相同但其余字段都不同,是否可以插入重复项?在这里,在这种情况下,它只是同一张优惠券。它还能做到吗?
-
这取决于唯一键。发布您的表架构 (
SHOW CREATE TABLE couponentries)。 -
@PaulSpiegel 谢谢!我删除了唯一键约束。但是,它仍然不会将错误消息更新为新的重复条目。斗争是真实的!
标签: php mysql sql syntax-error sql-insert