$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 webform向MySQL数据库插入新项目。如果我插入一个重复的行,我会将结果更新为错误消息。这是我的代码。它一直给我一个语法错误。
错误:无法执行您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在第3行“无效的优惠券代码[错误号码:已存在]”附近使用正确的语法
答案 0 :(得分:2)
您正在使用字符串文字更新列 - 丢失values
:
$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注入攻击。你应该考虑改为Prepared Statements。