正在尝试在插件查询中设置“已删除”日期时间,但我不确定如何将更新集与$wpdb一起使用->;准备
我的问题是:
$cur_date = date(\'Y-m-d G:i:s\');
$rows_affected = $wpdb->query(
$wpdb->prepare("
UPDATE $table
SET ( removed, post_id, user_id, status )
VALUES ( %s, %d, %d, %d )
"),
array($cur_date, $postid, $userid, 0)
));
我可以使用$wpdb设置这样的更新吗?对于自行构建的DB查询来说是非常新的。
如果没有,我应该/可以如何做到这一点?
Thanx提前!
编辑---------------------------------------------------
新代码:
$table = $wpdb->prefix . \'ds_entry_swoons\';
$cur_date = date(\'Y-m-d G:i:s\');
$rows_affected = $wpdb->query(
$wpdb->prepare("
UPDATE {$table}
SET removed = %s, post_id = %d, user_id = %d, swoon_status = %d
WHERE post_id = $postid AND user_id = $userid;",
$cur_date, $postid, $userid, 0
)
);
最合适的回答,由SO网友:EarnestoDev 整理而成
我有点修正了你的问题。它需要一个表和一个WHERE条件来防止更改所有行。即使最后限制1也不会有什么坏处。
$rows_affected = $wpdb->query(
$wpdb->prepare(
"UPDATE {$table} SET removed = %s, post_id = %d, user_id = %d, status = %d;",
$cur_date = date(\'Y-m-d H:i:s\'), $postid, $userid, 0
) // $wpdb->prepare
); // $wpdb->query
只需添加WHERE。。。在MySQL查询中。正确使用prepare:
$wpdb->prepare($format, $arg1, $arg2, ...); // just like printf()