2012-05-23 149 views
2

我正在收集來自網頁訪問者的數據並將其放入我創建的JavaScript對象中。但後來我希望能夠引用他們輸入的數據。我可以將JavaScript對象存儲在mySQL數據庫中嗎?

我有權訪問MySQL數據庫,那麼有沒有辦法讓我在這裏存儲這個對象?

我想嘗試將它保留在對象格式中,而不是將它分解爲單獨的部分。

+3

您可以序列化對象並將其存儲在數據庫中。 – Quantastical

+0

爲什麼要存儲對象?爲什麼不直接存儲價值? – Limey

回答

0

看看JSON.你可以使用類似jQuery的東西來序列化表單數據並將其發送到服務器。你也可以使用普通的舊錶單,並在服務器端處理輸入。

0

只需使用varchar或文本數據類型將其作爲JSON對象存儲在字段中即可。

9

不,你不能,至少不會。

您可能會將其串行化爲字符串。如果它完全由數組,簡單對象和JSON format支持的其他數據類型組成(如果它是用戶提供的數據(如果二進制文件上傳時是主要異常),它可能會執行此操作),那麼您可以使用JSON序列化器來這樣做。現代瀏覽器爲此提供JSON objectjson2.js將爲舊版瀏覽器填充。然後您可以將該字符串存儲在數據庫中。

不把它分解成單獨的部分確實會拋棄使用關係數據庫的許多優點(即關係和執行有用搜索的能力)。

9

在數據庫中存儲您的對象的JSON.stringified版本,然後JSON.parse當您希望對象再次返回時。它看起來像這樣:

var myObj = {some: data, other: stuff}; 
var myObjString = JSON.stringify(myObj); 
// store string in mySQL database here 

// load string from database 
var myJSONString = //mySQL database call 
var myLoadedObj = JSON.parse(myJSONString); 
+2

您可以添加'<! - language:lang-js - >'讓SO系統知道應該使用哪種語言突出顯示。 – lonesomeday

+0

哦,好吧,很酷。謝謝。 –

相關問題