Wordpress替换查询输入null

时间:2017-02-18 13:47:01

标签: php mysql wordpress

我使用wordpress替换查询来更新/添加记录但我正面临一个错误。它成功更新记录但不在数组中的值变为null。这是我的代码

function ux_add_data($table,$postdata){
    global $wpdb;
    $tablename=$wpdb->prefix.$table;
    $updated_data=$postdata['BX_data'];
    if(isset($updated_data['isActive']) && $updated_data['isActive']==1)
        $updated_data['isActive']=1;
    else
        $updated_data['isActive']=0;    

    $data=$wpdb->replace($tablename,$updated_data,array('%s') );
    if($data)
        return UX_flash('success','Data has been added successfully.');
    else
        return UX_flash('danger','Some errror to save your data.'); 
} 

如果我在数据库recordid,ID,name,class,created,modified中有列,而在数组中我只有recordid,name,modified,那么ID,class,modified将变为空。

请告诉我我在哪里做错了。

由于

1 个答案:

答案 0 :(得分:0)

您正在使用$wpdb->replace功能,请注意

  

wpdb :: replace(string $ table,array $ data,array | string $ format = null)

     

<强> $数据

     

(array)(必需)要插入的数据(在column =&gt;值对中)。 $ data列和$ data值都应该是&#34; raw&#34; (两者都不应该被SQL转义)。 发送空值将导致列设置为NULL - 在这种情况下将忽略相应的格式。

因此,当您设置某些列时,其他一些列将设置为空。

找到更多at here