我使用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
将变为空。
请告诉我我在哪里做错了。
由于
答案 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。