2013-08-27 96 views
0

我想在我的SQL數據庫中存儲JSON對象;我該怎麼做?在數據庫中存儲JSON

// $app is my objet 
$js = json_encode($app); 
mysql_query($con, "INSERT INTO app_event (JSON_app) VALUES ('mysql_real_escape_string($js)');"); 
+0

你不一定需要做mysql_real_escape。 etiherway,這似乎工作正常。究竟是什麼問題 –

+0

我認爲SQL是JSON的不好選擇。去MONGODB – Bloodcount

+0

爲什麼這是一個壞主意?如果他的數據是另外的關係,他想存儲一些他不需要直接查詢的東西,那應該沒問題 –

回答

1

更改此

mysql_query($con,"INSERT INTO app_event (JSON_app) VALUES('mysql_real_escape_string($js)');"); 

有了這個

mysql_query("INSERT INTO app_event (JSON_app) VALUES('".mysql_real_escape_string($js)."');"); 

你應該考慮學習更多的PHP,順便說一句。

+0

我嘗試之前,但沒有工作,錯誤:mysql_query()期望參數1是字符串,對象給出 – user2673732

+1

刪除$ con第一個參數。我編輯了我的帖子。考慮閱讀PHP文檔。 – blue112

+0

謝謝,這就是爲什麼我在這裏,我正在學習PHP ... – user2673732

1

我想你可以使用php的serialize()將它保存爲文本。當你會得到這一點從MySQL,你可以使用unserialize()

php.net serialize manual

mysql_query("INSERT INTO app_event (JSON_app) VALUES('".serialize($app)."');"); 
+1

序列化json字符串?這有點系列化:/ – blue112

+0

哦,沒有注意到它是一個字符串,哈哈。那麼爲什麼不直接保存字符串,並從sql中提取後解析呢 – Alex

+0

你和OP有同樣的問題:mysql_query()的參數順序錯誤。 – Barmar