【问题标题】:$wpdb->update prefixes database name to table when executing query$wpdb->update 在执行查询时将数据库名称添加到表中
【发布时间】:2019-10-03 04:46:36
【问题描述】:

我遇到了一个似乎无法解决的问题。我来来回回,甚至使用了 $wpdb->prepare() 和 $wpdb->query() 函数,没有任何帮助。

$table_prefix."users" 返回 wp_2qttgdv7ac_2_users(出于安全目的略有更改)

$wpdb->update($table_prefix."users", array('user_email' => $fetch_data['new_email']), array('user_login' => $fetch_data['username']))

这不起作用,但正在运行...

var_dump( $wpdb->last_error)

我得到错误:

string(59) "表 'A41K421094D3615.wp_2qttgdv7ac_2_users' 不存在"

这里 A41K421094D3615 是数据库名称。我在多站点环境中运行。但是,访问自定义表不会在表前添加数据库名称。我怎样才能让它停止添加它?或者至少让它尊重桌子。通常 database_name.table_name 应该可以工作,对吧?但是,它返回它不存在。有什么建议吗?

【问题讨论】:

    标签: wordpress multisite


    【解决方案1】:

    你可以这样试试

    global $wpdb;
    
    $wpdb->update(
            $wpdb->prefix . "users", 
            array('user_email' => $fetch_data['new_email']), 
            array('user_login' => $fetch_data['username'])
    );
    

    【讨论】:

    • 是的,我也试过 $wpdb->prefix。结果相同。
    猜你喜欢
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 2020-04-25
    • 2011-11-12
    • 2021-08-17
    相关资源
    最近更新 更多