2017-02-18 6 views
0

私はレコードを更新/追加するためにワードプレスの置換クエリを使用していますが、私はエラーに直面しています。それは成功したレコードを更新しますが、配列内の値ではないが、私はデータベースrecordid,ID,name,class,created,modifiedの列を持っている場合はnull .Hereは私のコードワードプレスの置換クエリは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,name,modifiedその後、ID,class,modifiedがnullになっています。

私が間違っているところを教えてください。

|あなたは$wpdb->replace機能を使用している

おかげ

+0

1つでは、ifループが間違っています。 '$ updated_data ['isActive']'が既にセットされていて1に等しいかどうかをチェックしているので、もう一度設定する必要はありません。クエリは新しい行を作成するか、実際に既存の行を置き換えますか? – RST

+0

'ヌル値を送信すると、カラムがNULLに設定されます。 ' [read at](https://developer.wordpress.org/reference/classes/wpdb/replace/) – MohaMad

答えて

0

は、

wpdb ::(文字列$フォーマット= null文字列$表、配列$データ、配列)を交換することを何卒ご了承下さい$データ

(配列)(必須)挿入するデータ(列=>値のペア)。 $ dataカラムと$ data値はどちらも "raw"でなければなりません(どちらもSQLをエスケープしないでください)。 NULL値を送信すると、列がNULLに設定されます。この場合、対応する形式は無視されます。

したがって、いくつかの列を設定している間に、他の列はnullを設定します。

続きを見るat here

関連する問題