尝试更新现有记录-出现错误

时间:2019-09-11 13:21:29

标签: mysql

我正尝试将记录插入数据库,如果发现重复,则只能更新一个字段。

到目前为止,这是我的代码

$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')'附近使用

在我丢失的那句话中看起来有什么不对吗?

1 个答案:

答案 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)";