我正在尝试将记录插入我的数据库,如果找到重复项,它应该只更新一个字段。
这是我到目前为止的代码
$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 在单个查询中插入多行的重复键更新
我最终从处理此脚本的页面收到一条错误消息,说
您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本相对应的手册,了解在第 8 行的"theimageurl.jpg"附近使用的正确语法
我错过的那句话有什么不对劲的地方吗?
sql 查询末尾有一个不匹配的右括号。
ON DUPLICATE KEY
子句中的VALUES
可用于引用在没有发生重复键冲突时将插入的值,如文档中所述。
$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)";