我有我必須轉換爲JSON變量並將其存儲在MySQL表字段的陣列,並且我通過下面的代碼做到這一點:如何將json對象插入到mysql字段中並將其讀回?
$arr = array(
'title_it' => $category->title->attributes()->it,
'desc_it' => $category->desc->attributes()->it,
'tags_it' => $category->tags->attributes()->it,
'title_es' => $category->title->attributes()->es,
'desc_es' => $category->desc->attributes()->es,
'tags_es' => $category->tags->attributes()->es,
'title_fr' => $category->title->attributes()->fr,
'desc_fr' => $category->desc->attributes()->fr,
'tags_fr' => $category->tags->attributes()->fr,
'title_en' => $category->title->attributes()->en,
'desc_en' => $category->desc->attributes()->en,
'tags_en' => $category->tags->attributes()->en,
'title_de' => $category->title->attributes()->de,
'desc_de' => $category->desc->attributes()->de,
'tags_de' => $category->tags->attributes()->de
);
$params = mysql_real_escape_string(json_encode($arr));
$query = mysql_query("INSERT INTO category_tags (id, params) VALUES ($id, '$params')") or die("could not connect");
然後我想讀這個字段和僅顯示屬性title_it我試過類似:
$query = mysql_query("SELECT * FROM article_tags WHERE id = $id LIMIT 0,1") or die("could not connect");
$row = mysql_fetch_array($query);
$jsoni = json_encode($row['params']);
$decoded = json_decode($jsoni, true);
echo $decoded->title_it;
但沒有結果。另外,json以一種奇怪的格式存儲。 mysql字段如下所示:
{「title_it」:{「0」:「titolo1」},「desc_it」:{「0」:「descrizione1」},「tags_it」:{「0」:「 tags1 「},」 title_es 「:{」 0 「:」 titulo1 「},」 desc_es 「:{」 0 「:」 descripci \ u00f3n1 「},」 tags_es 「:{」 0 「:」 etiquetas1 「},」 title_fr 「:{」 0 「:」 titre1 「},」 desc_fr 「:{」 0 「:」 內容描述 「},」 tags_fr 「:{」 0 「:」 balises1 「},」 title_en 「:{」 0 「:」 TITLE1 「},」 desc_en 「:{」 0 「:」 內容描述 「},」 tags_en 「:{」 0 「:」 tags1 「},」 title_de 「:{」 0 「:」 titel1 「},」 desc_de「: {「0」:「beschreibung1」},「tags_de」:{「0」:「etikett1」}}
那麼...什麼是正確的方式來插入這個json到mysql字段,然後只讀這個字段的參數?
請不要**在新的應用程序中使用mysql_query。它已被棄用,如果使用不正確會導致危險,並且正在從未來版本的PHP中刪除。像[PDO這樣的現代化替代品並不難學](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)。像[PHP正確的方式](http://www.phptherightway.com/)這樣的指南將幫助您避免出現這樣的錯誤。 – tadman
您正在寫'category_tags'並從'article_tags'讀取? –
你爲什麼要做'$ jsoni = json_encode($ row ['params']);'? 「params''已經不是json字符串了嗎?我認爲你只需要'$ decode = json_decode($ row ['params'],true);'P.S. ',true'使它成爲一個關聯數組,*不是*一個對象。你需要'echo $ decoded ['title_it'];' –