2017-02-18 45 views
0

我正在使用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變爲零。

請告訴我我做錯了什麼。

感謝

+0

其中之一,你的if循環是錯誤的。您已經檢查了$ updated_data ['isActive']'被設置爲等於1,不需要再次設置它。查詢是創建一個新行還是實際替換現有行? – RST

+0

'發送空值將導致列設置爲NULL' [閱讀](https://developer.wordpress.org/reference/classes/wpdb/replace/) – MohaMad

回答

0

您使用$wpdb->replace功能,請注意

:: WPDB代替(字符串$表,數組$數據,陣列|字符串$格式= NULL)

(數組)(必填)要插入的數據(在列=>值對中)。 $ data列和$ data值都應該是「原始的」(兩者都不應該被SQL轉義)。 發送空值將導致列被設置爲NULL - 在這種情況下,相應的格式將被忽略。

所以,當你設置一些列時,其他一些列將設置爲空。

查找更多at here