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

Can I store a JavaScript Object in a mySQL database?

本文关键字:JavaScript 对象 存储 mySQL 数据库 我可以      更新时间:2023-09-26

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

我可以访问 MySQL 数据库,那么有没有办法将此对象存储在那里?

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

在数据库中存储对象的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);

不,你不能,至少不能。

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

不过,不将其分解为单独的部分确实会抛弃使用关系数据库的许多优点(即关系和执行有用搜索的能力)。

只需将其作为 JSON 对象存储在使用 varchar 或文本数据类型的字段中即可。

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

是的,实际上可以做到。

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 = [{}, {}]
  • Imp. - 它不应该有主 id 列。

希望对您有所帮助。