Javascript 如何使用节点js将json输出插入mysql

Javascript 如何使用节点js将json输出插入mysql,javascript,mysql,json,node.js,Javascript,Mysql,Json,Node.js,INSERT语句应如下所示: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''title','date','month','venue','li nk') VALUES ('undefined', 'undefined', 'undefi' at line 1 error

INSERT语句应如下所示:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''title','date','month','venue','li
nk') VALUES ('undefined', 'undefined', 'undefi' at line 1 error
其中列名不应在引号中。您的具体声明如下:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

有关正确的语法,请参见,MySQL中有一个JSON数据类型

    var query = connection.query("INSERT INTO scrapped (title,date,month,venue,link) VALUES ('" + output.title + "', '" + output.date + "', '" + output.month + "', '" + output.venue + "', '" + output.link + "');", scrape, function(err, result) {
     if(err) throw err;
     console.log('data inserted');
});
如果您有一个非常大的json对象,并且不想创建一个巨大的INSERT语句,那么这将特别有用。如果您不确定将通过json传入的确切数据,但希望捕获所有数据,那么它也很有用。我目前正在从事一个项目,我们偶尔会在用户输入字段中添加和删除项,这非常有帮助,因此我不必经常在MySQL中修改表和编辑其他语句

    var query = connection.query("INSERT INTO scrapped (title,date,month,venue,link) VALUES ('" + output.title + "', '" + output.date + "', '" + output.month + "', '" + output.venue + "', '" + output.link + "');", scrape, function(err, result) {
     if(err) throw err;
     console.log('data inserted');
});

更多信息可在此处找到:

这起作用了。谢谢但是当我检查数据库时,我得到了所有行的“未定义”值。知道为什么会发生这种情况吗?此外,当输出中有两条记录时,只更新一行。这可能是因为output.title不是属性。相反,output.event[i].title可能是因为output似乎有一个名为event的数组属性,并且每个属性都有title etc属性。您的查询只执行一个查询。您需要使用for循环来创建一个更大的查询,该查询将覆盖output.events数组中的所有元素。正确的语法应该是什么?我想使用标题、日期等在mysql中插入不同的COL?你能建议如何编写代码吗?我是node.js的新手
mysql> CREATE TABLE t1 (jdoc JSON);
Query OK, 0 rows affected (0.20 sec)

mysql> INSERT INTO t1 VALUES('{"key1": "value1", "key2": "value2"}');
Query OK, 1 row affected (0.01 sec)