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