wpdb update multiple row?

时间:2012-11-14 作者:dev-jim

我需要立即更改所有用户的元值。除了使用自定义数据库查询之外,似乎没有用于此的api。

这是我的代码:

$matches = array(\'meta_key\' => \'user_token\');
$data = array(\'meta_value\' => \'100\');
$wpdb->update( "$wpdb->usermeta", $data, $matches);
问题是,这只更新一个用户元值,而不是使用“user\\u token”元键更新所有用户元值
是否将$wpdb->更新限制为仅更新单行?还是我做错了什么?

2 个回复
SO网友:Oleg Butuzov

您的wpdb方法代码是正确的。它失败的可能原因。。。

只有一个用户与的meta\\u键=“user\\u token”匹配query 钩住滤清器带使用调试最终SQL

add_filter( \'query\', \'query_report\', 10000 );
function query_report($sql){ 
    var_dump($sql); 
    return $sql;
}

SO网友:T.Todua

也许有不同的方法UPDATE:

(1)

<?php
define(\'WP_USE_THEMES\', false);
require( dirname( __FILE__ ) . \'/wp-blog-header.php\' );
global $wpdb;

$matches = array(\'meta_key\' => \'user_token\');
$data = array(\'meta_value\' => \'100\');
$wpdb->update( "$wpdb->usermeta", $data, $matches);
?>
(2)

<?php
define(\'WP_USE_THEMES\', false);
require( dirname( __FILE__ ) . \'/wp-blog-header.php\' );
global $wpdb;

$multi=array(\'34\',\'55\');
Foreach ($multi as $each){
  $result = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->postmeta SET meta_value = \'111\' WHERE post_id = \'$each\'", "blahblah" ) ); var_dump($result);
  //OR update_post_meta($each, \'meta_key_NAME\', \'YOUR_VALUE\' );
  }
?>

结束

相关推荐

未在HTTPS下加载重力表单,未定义jQuery

我在Wordpress网站上使用重力表单,目前为止效果不错。问题是我已经使页面安全(https/SSL),这使得表单无法工作。问题似乎是站点如何加载jQuery。页面上有23个JS错误,这似乎是由于jQuery加载失败造成的\"Uncaught ReferenceError: jQuery is not defined\". 如果转到源代码试图提取jQuery文件的页面,您将看到错误:https://code.jquery.com/jquery-1.7.1.min.js?ver=3.4.2错误截图:点击放