【发布时间】:2018-01-21 13:18:24
【问题描述】:
我的查询应该在没有现有行时插入一行,但我不知道如何正确放置参数。有 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 ";
但这不起作用 - 没有更新,但似乎创建并删除了一个新行。那么正确的查询应该是什么样子呢?
【问题讨论】:
标签: php mysql wordpress prepared-statement