我使用WordPress的4.7,我有一些數據,並希望將它們插入我的數據庫使用全球$wpdb
,但問題是,數據保存爲它保存在例如。 wp_post_meta
表,如s:4:"asdf";
或s:2:"on";
。 我以完全相同的方式使用此功能,並沒有此問題。有什麼改變或我做錯了什麼?
這裏是我的全碼:
$table_name=$wpdb->prefix.'products';
$wpdb->insert($table_name,array('name'=>$product_name,'price'=>$product_price,'size'=>$product_size,'status'=>$instore,'shortcode'=>'asdf'),array('%s', '%d','%s','%s','%s'));
這是從數據庫返回的值,當我讀到它,所以你可以看到它是如何存儲在數據庫中
array (size=1)
0 =>
object(stdClass)[700]
public 'id' => string '1' (length=1)
public 'name' => string 's:4:"asdf";' (length=11)
public 'price' => string 's:3:"234";' (length=10)
public 'size' => string 's:2:"on";' (length=9)
public 'status' => string 'N;' (length=2)
public 'shortcode' => string 'asdf' (length=4)
正如你可以看到我沒有得到實際值,而是以s:
前綴的值。我希望這些值能夠以簡單的方式存儲,並且不需要這些前綴。
這個var_dump()
輸出的我$_POST
array (size=4)
'new-product' => string 'yes' (length=3)
'product-name' => string 'sdf' (length=3)
'product-price' => string '1' (length=1)
'product-size' => string 'on' (length=2)
$product_name=$_POST['product-name'];
$product_price=$_POST['product-price'];
if(isset($_POST['product-size'])){
$product_size=$_POST['product-size'];
}else{
$product_size='N';
}
if (isset($_POST['instore'])){
$instore=$_POST['instore'];
}else{
$instore='N';
}
看來,這不是一個WordPress的問題。你只需要這樣添加它們。 'echo $ product_name'的結果是什麼?正如你在添加shortcode =>'asdf'時看到的那樣。 – Ionut
echo $ product_name;給出s:4:「asdf」;和btw。我直接從$ _POST變量中獲取它並插入到數據庫中。 – DevMan
你能告訴我你放在'$ product_name'裏的東西嗎?我的意思是'$ product_name =你在這裏添加的東西?'。 – Ionut