JS解析到MySQL时引用冲突
Posted
技术标签:
【中文标题】JS解析到MySQL时引用冲突【英文标题】:Quote conflict in JS when parsing to MySQL 【发布时间】:2020-12-24 13:01:28 【问题描述】:所以我有这个 JSON 对象,我需要将其解析为字符串并使用 javascript 发送到我的 SQL 数据库。节点包是'mysql'。 JSON 对象是具有可变数量键的对象数组,如下所示:
array:
[
"title": "Lorem ipsum dolor sit amet",
"body": "Lorem ipsum dolor sit amet: <a href=\ "https:\/\/www.google.com\/">'Lorem ipsum dolor sit amet, consectetur adipiscing elit'<\/a>
The future of aviation doesn't necessarily involve existing aircraft..."
],
[...],
[...]
我使用以下方法解析它:
let values = [];
let elements = [];
for (let i = 0; i < array.length; i++)
values = [];
for (let key in array[i])
values.push(`"$array[i][key]"`)
elements.push(`($values.join(', '))`)
// pushing elements and columns into an sql query
let sql = `INSERT INTO table (columns) VALUES $elements.join(', ')`
当我尝试查询字符串时,它返回以下错误:
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlMessage: "You have an error in your SQL syntax; check the manual ...",
sqlState: '42000',
我责怪引号和撇号,因为这种解析方法适用于我拥有的另一个 JSON 对象。 我该如何解决这个问题?
【问题讨论】:
你是对的,我很抱歉。我希望我可以公开发布原始 JSON 文件,但出于隐私原因,我不得不替换它。 谢谢!但是在将对象转换为字符串后如何解析它?我真的不明白你的解决方案。我使用 JSON 对象来提取多个值,因为我必须将“title”和“body”键作为表列并将它们的值作为表值。 【参考方案1】:您应该使用JSON.stringify()
方法处理您的json 对象的序列化。您无需为此编写自己的函数
类似地,反序列化使用 JSON.parse()
将您的字符串转换回 JSON 对象
【讨论】:
以上是关于JS解析到MySQL时引用冲突的主要内容,如果未能解决你的问题,请参考以下文章