Mysql 发生ER_解析_错误

Mysql 发生ER_解析_错误,mysql,node.js,Mysql,Node.js,我想做网页抓取。我写了代码 var connection = require('./mysqlConnection'); var c = new Crawler({ maxConnections : 10, callback : function (error, result, $) { if(error){ console.log(error); }else{ const data = $(".test");

我想做网页抓取。我写了代码

var connection = require('./mysqlConnection'); 
var c = new Crawler({
  maxConnections : 10,
  callback : function (error, result, $) {
      if(error){
          console.log(error);
      }else{
        const data = $(".test");
          for(var i = 0; i < data.length; i ++){
            const item = $(data[i]).text();
            var query = 'INSERT INTO crawling (item) VALUES ("' + item + '")';
            connection.query(query, function(err, rows) {
              console.log(err);
            });
          }
      }
  }
});
c.queue('https://xxxxxxxxxx.com');
我真的不明白为什么会发生这样的错误。我想是\n导致了这个错误,所以我重写了

const item = $(data[i]).text().replace("\n", '');

但同样的错误也会发生。我的代码有什么问题?我应该如何解决这个问题?

尝试更改:
连接。查询(查询,函数(错误,行){

connection.query([query],函数(err,rows){


它周围可能需要
[]

您正在查询中添加双引号以分隔insert语句中的文本,但您不知道传入文本是否也有双引号,因此该语句的格式不正确:

'INSERT INTO crawling (title) VALUES (" .. "June18th".. ")' 
因此,到了6月18日,sql出现了错误

转义传入文本是一种很好的做法,因为您可以避免sql注入,也可以避免这些问题;通常mysql(或任何其他数据库)模块都有内置转义,在查询中使用特定语法,或者直接调用转义函数

'INSERT INTO crawling (title) VALUES (" .. "June18th".. ")'