Php Wordpress替换查询输入null

Php Wordpress替换查询输入null,php,mysql,wordpress,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']) &&

我正在使用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
将变为null

请告诉我哪里做错了


谢谢

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

wpdb::replace(字符串$table,数组$data,数组|字符串$format=null)

$data

(数组)(必需)要插入的数据(列=>值对)。$data列和$data值都应该是“原始的”(都不应该是SQL转义的)发送空值将导致列设置为空-在这种情况下,将忽略相应的格式

因此,在设置某些列时,其他一些列将设置为null


查找更多信息。

首先,您的if循环是错误的。您已经检查了
$updated_data['isActive']
是否设置为等于1,无需再次设置。查询是创建新行还是实际替换现有行?
发送null值将导致列设置为null