我可以在mySQL数据库中存储JavaScript对象吗?

时间:2012-05-23 18:36:37

标签: javascript database

我正在从网页访问者收集数据并将其放入我创建的JavaScript对象中。但后来我希望能够引用他们输入的数据。

我可以访问MySQL数据库,所以有没有办法在那里存储这个对象?

我想尝试将其保留为对象格式,而不是将其分解为单独的部分。

5 个答案:

答案 0 :(得分:13)

将对象的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);

答案 1 :(得分:10)

不,你不能,至少不是这样。

您可以将其序列化为字符串。如果它完全由数组,简单对象和JSON format支持的其他数据类型组成(如果它是用户提供的数据(如果上传二进制文件则主要例外,它可能会这样做)),那么你可以使用JSON序列化程序来执行此操作。现代浏览器为此目的提供JSON objectjson2.js将为旧浏览器提供填充。然后,您可以将该字符串存储在数据库中。

不将它分成单独的部分确实会丢掉使用关系数据库的许多优点(即关系和执行有用搜索的能力)。

答案 2 :(得分:0)

查看JSON.您可以使用类似jQuery的内容来序列化表单数据并将其发送到服务器。您也可以使用普通的旧表单,并在服务器端处理输入。

答案 3 :(得分:0)

使用varchar或text数据类型将其作为JSON对象存储在字段中。

答案 4 :(得分:0)

是的,实际上可以做到。

con.connect(function(err){
var sql = "INSERT INTO books SET ?";  //books -- <tablename>
if(err) console.dir("Error: "+err.message);
var values = {
    "bname": "Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future",
    "author": "Elon Musk",
    "genre": "Technology",
    "bookcount": "5"
};
con.query(sql, [values], function(err, result){
   if (err) throw err;
   else console.dir("Successfully inserted the row in table.");
      console.log(result);
});
}); 

但是,与此同时,您必须满足这些要点,

  • value应该是对象,即value = {“ name”:“ property”}
  • 它不应该是数组,即values = [{},{}]
  • 提示-它不应具有主ID列。

希望有帮助。