0
我創建代碼,我正在更新一個表,其中一個json_encoded價值迴歸與此代碼Json_encoded值不更新數據庫
global $wpdb;
$table_name = $wpdb->prefix . 'ab_payments';
$test = '{"items":[{"ca_id":1,"appointment_date":"2016-11-04 08:00:00","service_name":"wordpress developer","service_price":"10.00","deposit":"100%","number_of_persons":"1","staff_name":"admin","extras":[]}],"coupon":{"code":"5off","discount":"50","deduction":"0.00"},"customer":"admin"}';
$wpdb->query($wpdb->prepare("UPDATE $table_name SET details='$test' WHERE id LIKE '$paymentid'"));
,但問題是它沒有更新的數據庫值。如果用簡單的文本替換值它的工作正常,但與測試json_encoded值不更新請幫助。
謝謝
您正在傾銷任意數據而沒有轉義,這是行不通的。您需要[使用佔位符值正確地轉義您的輸入](https://codex.wordpress.org/Class_Reference/wpdb#Placeholders)使用WordPress數據庫層。 – tadman
@tadman你只是寫了簡單的查詢測試,如果它的數據庫更新值,但它不工作。你在說我應該創建這樣的查詢: - $ metakey \t =「Harriet's Adages」; $ metavalue \t =「WordPress的數據庫界面就像星期日早晨:簡單。」; $ wpdb->查詢($ wpdb->製備( \t「 \t \t INSERT INTO $ wpdb-> postmeta \t \t(POST_ID,meta_key,meta_value) \t \t VALUES(%d,%S,%S ) \t」, 10, \t $ metakey, \t $ metavalue )); –
是的,您使用像'%s'這樣的佔位符,WPDB庫負責處理其餘部分。 – tadman