为什么$wpdb->INSERT和$wpdb->UPDATE不能在本地主机上运行,而是在本地主机上运行?

时间:2019-08-17 作者:Rivero Felipe

我在wordpress网站工作,我开始在本地环境中使用xampp服务器。

我使用wpdb对数据库进行如下操作:

global $wpdb;   

$name = $wpdb->get_results("SELECT meta_value FROM wp_usermeta WHERE meta_key = \'first_name\' AND user_id = ".$user." ");

    $wpdb->update( 
    \'wp_usermeta\', 
    array( 
        \'meta_value\' => $v1 
    ), 
    array( \'user_id\' => $user, \'meta_key\' => \'first_name\'  ), 
    array( 
        \'%s\'
    ), 
    array( \'%d\', \'%s\') 


);
在本地环境中工作得很好,但当我将项目迁移到amazon实例时,使用nginx的Ubuntu服务器和所有使用$wpdb的操作都不起作用。

我不能更新,我不能插入。

我不知道为什么。

有什么线索吗?

1 个回复
SO网友:Pat J

是否有令人信服的理由使用$wpdb 而不是API函数get_user_meta()update_user_meta()?

这就是说,有件事需要检查:您确定服务器上的数据库前缀是wp_? 如果没有,那么您的代码将无法按预期工作。

尝试以下操作:

global $wpdb;   

$name = $wpdb->get_results("SELECT meta_value FROM {$wpdb->prefix}usermeta WHERE meta_key = \'first_name\' AND user_id = ".$user." ");

    $wpdb->update( 
    $wpdb->prefix . \'usermeta\', 
    array( 
        \'meta_value\' => $v1 
    ), 
    array( \'user_id\' => $user, \'meta_key\' => \'first_name\'  ), 
    array( 
        \'%s\'
    ), 
    array( \'%d\', \'%s\') 


);

相关推荐

$wpdb->从XML文件批量插入?

事实上我被困在这上面了!XML文件约140.000行,文件大小约9.0 MBLOAD XML INFILE \'file_name\' 不允许(共享主机!)供应商提供一个包含数量和sku的XML文件。XML的格式如下:<item> <LITM>0000001</LITM> <STQU>1<STQU> </item> <item> <LITM>0000002<