gpt4 book ai didi

php - 变量占位符数量错误($wpdb->prepare + ON DUPLICATE KEY UPDATE)

转载 作者:行者123 更新时间:2023-11-29 10:25:33 25 4
gpt4 key购买 nike

我的查询应该在尚不存在行时插入一行,但我不知道如何正确放置参数。有 8 个参数进入新行,但如果进行更新,则只需更新 6 列。但是在进行更新时,它说我提供了错误数量的变量占位符,8 个变量的 14 个占位符。请参阅此处:

    $event_id       =   "value";
$status_type = "value";
$sport_name = "value";
$startdate = "value";
$ut = "value";
$name = "value";
$value_home = "value";
$value_away = "value";

$sql = "INSERT INTO wp_mytable "
. "(event_id,status_type, sport_name, startdate, ut, name, value_home, value_away) "
. "VALUES (%s,%s,%s,%s,%s,%s,%s,%s) "
. "ON DUPLICATE KEY UPDATE status_type = %s, startdate = %s,ut = %s, name = %s, value_home = %s, value_away = %s";

$sql = $wpdb->prepare($sql,$event_id, $status_type,$sport_name,$startdate,$ut ,$name ,$value_home ,$value_away );

$wpdb->query($sql);

我猜插入需要 VALUES 占位符,但它们也计入“重复键”更新。

我也尝试过这样写:

"ON DUPLICATE KEY UPDATE status_type = status_type, startdate = startdate,ut = ut, name = name, value_home = value_home, value_away = value_away ";

但这不起作用 - 没有更新,但似乎创建并删除了一个新行。那么正确的查询应该是什么样的?

最佳答案

我找到了一个在这里有效的解决方案: stackoverflow.com/questions/22699598/prepared-statement-with-on-duplicate-key用于更新的每一列都放在“VALUES()”内。

 $sql = "INSERT INTO wp_mytable "
. "(status_type, startdate,ut ,name ,value_home ,value_away ,sport_name ,event_id ) "
. "VALUES (%s,%s,%s,%s,%s,%s,%s,%s) "
. "ON DUPLICATE KEY UPDATE status_type = VALUES(status_type), sport_name=VALUES(sport_name), "
. "startdate = VALUES(startdate),ut = VALUES(ut), name = VALUES(name), "
. "value_home = VALUES(value_home), value_away = VALUES(value_away)";

$sql = $wpdb->prepare($sql,$status_type,$startdate,$ut ,$name ,$value_home ,$value_away, $sport_name, $event_id );

关于php - 变量占位符数量错误($wpdb->prepare + ON DUPLICATE KEY UPDATE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48367199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com