我正尝试将记录插入数据库,如果发现重复,则只能更新一个字段。
到目前为止,这是我的代码
$strSQL = "INSERT INTO ppage_image_uploads(Cons_ID, Img_SRC, Program, TeamRaiser_ID)
VALUES
('" . $_POST["cons_id"] . "',
'" . $_POST["img_src"] . "',
'" . $_POST["program"] . "',
'" . $_POST["tr_id"] . "')
ON DUPLICATE KEY UPDATE
Img_SRC = VALUES '" . $_POST["img_src"] . "'
)";
松散地从另一个问题中解决这个问题:MySQL ON DUPLICATE KEY UPDATE for multiple rows insert in single query
我最后收到一条来自处理该脚本的错误消息,提示
您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第8行的``theimageurl.jpg')'附近使用
在我丢失的那句话中看起来有什么不对吗?
答案 0 :(得分:0)
在SQL查询末尾有一个不匹配的右括号。
如the documentation中所述,VALUES
子句中的ON DUPLICATE KEY
可以用来表示如果没有重复的键冲突发生时应该插入的值。
$strSQL = "INSERT INTO ppage_image_uploads(Cons_ID, Img_SRC, Program, TeamRaiser_ID)
VALUES
('" . $_POST["cons_id"] . "',
'" . $_POST["img_src"] . "',
'" . $_POST["program"] . "',
'" . $_POST["tr_id"] . "')
ON DUPLICATE KEY UPDATE
Img_SRC = VALUES(Img_SRC)";