【问题标题】:Using ON DUPLICATE KEY UPDATE in PDO [duplicate]在 PDO 中使用 ON DUPLICATE KEY UPDATE [重复]
【发布时间】:2015-08-07 16:41:58
【问题描述】:

如何在 PDO 中使用ON DUPLICATE KEY UPDATE

我的问题是我得到 (SQLSTATE[42000]: 语法错误或访问冲突?) 当我尝试以下 synthaxe 时,插入函数和更新工作正常,但是当我在重复时同时使用两者时,我得到错误:

    $query = "INSERT INTO my_table (name,tophtml,bothtml,lang,background_mode,redirhtml,bg_color)
              VALUES (:name, :top_html, :bottom_html, :hs_language, :bg_style, :redirect_to, :bg_color )
              ON DUPLICATE KEY UPDATE
              tophtml= :top_html, bothtml= :bottom_html, lang= :hs_language, bg_color= :bg_color, redirhtml= :redirect_to, background_mode= :bg_style WHERE name=:name
             ";
    $request = $databaseStatus->connection->prepare($query);
    $request->bindParam(":name", $name, PDO::PARAM_STR);
    $request->bindParam(":top_html", $top_html, PDO::PARAM_STR);
    $request->bindParam(":bottom_html", $bottom_html, PDO::PARAM_STR);
    $request->bindParam(":bg_color", $bg_color, PDO::PARAM_STR);
    $request->bindParam(":redirect_to", $redirect_to, PDO::PARAM_STR);
    $request->bindParam(":hs_language", $hs_language, PDO::PARAM_STR);
    $request->bindParam(":bg_style", $bg_style, PDO::PARAM_STR);
    $request->execute();

【问题讨论】:

    标签: php mysql sql pdo


    【解决方案1】:

    我找到了解决方案here。 我的问题是在 where 子句中,您不需要将表名或 SET 放在 ON DUPLICATE KEY 子句中,也不需要 WHERE 子句(它总是使用重复键更新记录)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-08
      • 2015-07-30
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      相关资源
      最近更新 更多