2016-11-04 109 views
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值不更新请帮助。

谢谢

+0

您正在倾销任意数据而没有转义,这是行不通的。您需要[使用占位符值正确地转义您的输入](https://codex.wordpress.org/Class_Reference/wpdb#Placeholders)使用WordPress数据库层。 – tadman

+0

@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 )); –

+0

是的,您使用像'%s'这样的占位符,WPDB库负责处理其余部分。 – tadman

回答

0

感谢@tadman其WordPress的占位符需要更新与此json_encode代码,以便更新的代码并开始工作。

$wpdb->query($wpdb->prepare("UPDATE $table_name SET details=%s WHERE id=%d",$serialized,$paymentid));