php - 插入MySQL "on duplicate key update"语法错误

标签 php mysql sql syntax-error sql-insert

$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 数据库。如果我插入重复的行,我会将结果更新为一条错误消息。这是我的代码。它一直给我一个语法错误。

ERROR: Could not able to execute You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Invalid couponcode[ERR: Already exists]')' at line 3

最佳答案

您正在使用字符串文字来更新您的列 - 丢失:

$sql = "INSERT INTO couponentries (itemid, coupon, MSISDN, channel, result) 
       VALUES ('".$itemid."','".$CouponCode."', '".$MSISDN."','".$channel."','".$status."')
       ON DUPLICATE KEY UPDATE couponentries.result = 'Invalid couponcode[ERR: Already exists]'";

强制性旁注:
像这样连接字符串会使您的代码容易受到 SQL 注入(inject)攻击。你应该看看 Prepared Statements相反。

关于php - 插入MySQL "on duplicate key update"语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50763965/

相关文章:

mysql - 在两个表中存储标签和级别,需要获取作为列返回的级别的标签

遇到 null 时 Java 结果集错误

php - 在 mysql 列中使用 UNIX 纪元?

sql - SQL函数是否应该大写有 'official'约定吗?

php - 使用 php 从 API 中链接获取大头像

php - 拖放数组 NOT EXIST 然后插入 MySQL

php - 如何在不被 Joomla session 覆盖的情况下获取 session 数据(来自外部 php 脚本)?

php - 使用 PHP 和 CURL 创建新的 etherpad

php - 预订系统。检查现有数据

php - 单击后退按钮时不从浏览器 url 检索 id