无法使用$wpdb查询更新多行

时间:2014-08-19 作者:Neovea

似乎我无法更新多行来更改具有特定标记的post\\u类型的帖子。

我遵循不同的方法,即使好的方法似乎是这个:

global $wpdb;
$result = $wpdb->query("UPDATE $wpdb->posts SET $wpdb->posts.post_type = \'editorial_post\' WHERE $wpdb->posts.post_type = post AND $wpdb->postmeta.meta_key = \'tag\' 
AND $wpdb->postmeta.meta_value = \'editorial\'");
var_dump($result);
Var_dump() 始终返回空结果。有人能告诉我哪里错了吗?非常感谢你。

1 个回复
最合适的回答,由SO网友:sakibmoon 整理而成

$wpdb->query() 返回受查询影响的行数。它回来了NULL 指示查询中存在错误。

查询的问题是您正在更新$wpdb->posts 表,但条件取决于$wpdb->postmeta 桌子您必须联接这些表才能进行查询。

另一个问题是,您必须将帖子放在报价中

$wpdb->posts.post_type = \'post\'
尝试以下查询

global $wpdb;
$result = $wpdb->query("UPDATE $wpdb->posts
                        INNER JOIN $wpdb->postmeta
                            ON $wpdb->posts.ID = $wpdb->postmeta.post_id
                        SET $wpdb->posts.post_type = \'editorial_post\'
                        WHERE $wpdb->posts.post_type = \'post\'
                            AND $wpdb->postmeta.meta_key = \'tag\'
                            AND $wpdb->postmeta.meta_value = \'editorial\'");
var_dump($result);

结束

相关推荐

我可以在WordPress数据库中为我的定制表使用$wpdb吗?

我正在基于WordPress构建一个自定义应用程序。我在WP数据库中有我的自定义表。我可以使用$wpdb来处理它们吗,或者该类仅用于与WP相关的表吗?例如,如果我有一个跟踪狗和猫的数据库,我创建了一个名为animalid、animal\\u type等的自定义表。我是否使用$wpdb?我不知道用wpdb美元“与WordPress数据库交互”是否只用于股票表。编辑:我用MySQL Workbench手工创建了这些表。它们是从Microsoft Access升级的表。我还没有“通知”WordPress他们的存