Php 在PDO中使用重复密钥更新
如何在PDO中的重复密钥更新中使用Php 在PDO中使用重复密钥更新,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,如何在PDO中的重复密钥更新中使用 我的问题是,当我尝试以下Synthex时,我得到了(SQLSTATE[42000]:语法错误还是访问冲突?),insert函数和update可以正常工作,但当我将两者都用于on duplicate时,我得到了错误: $query = "INSERT INTO my_table (name,tophtml,bothtml,lang,background_mode,redirhtml,bg_color) VALUES (:nam
我的问题是,当我尝试以下Synthex时,我得到了(SQLSTATE[42000]:语法错误还是访问冲突?),insert函数和update可以正常工作,但当我将两者都用于on duplicate时,我得到了错误:
$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();
我找到了解决办法。
我的问题出现在where子句中,您不需要在ON DUPLICATE KEY子句中放置表名或集合,也不需要where子句(它总是使用重复键更新记录)。我找到了解决方案。
我的问题出现在where子句中,您不需要将表名或集合放在ON DUPLICATE KEY子句中,也不需要where子句(它总是使用重复键更新记录)