ER_PARSE_ERROR:你的 SQL 语法有错误 - Node JS

Nad*_*mad 2 mysql node.js

嗨,我正在使用节点 js 处理 mysql 数据库。大部分数据都被插入了,但此时查询卡住了,我不知道为什么。我试过了mysql.escape()utf8.encode()但仍然是同样的错误。

这是我的查询

                ms_connect.query("INSERT INTO `companies_jobs` VALUES (null, '"+mysql.escape(data[i].title)+"','"+mysql.escape(data[i].link)+"','"+mysql.escape(data[i].date)+"','"+mysql.escape(data[i].level)+"','"+mysql.escape(data[i].category)+"','"+mysql.escape(data[i].function)+"','"+mysql.escape(data[i].loc)+"','"+mysql.escape(data[i].timing)+"','"+mysql.escape(data[i].company)+"','"+JSON.stringify(time)+"','"+JSON.stringify(date)+"',"+1+")", function(err, row){
                    if(err){
                        console.log(data[i]);
                        throw err;
                    } else{
                        i++;
                        s();
                    }
                })
Run Code Online (Sandbox Code Playgroud)

我正在尝试将此数据插入数据库:

[{
  category: 'Sales',
  company: '',
  date: 'Posted on 12/06/2018',
  function: '',
  level: 'Students',
  link: 'https://career5.successfactors.eu/career?career%5fns=job%5flisting&company=LiMySLive&navBarLevel=JOB%5fSEARCH&rcm%5fsite%5flocale=en%5fUS&career_job_req_id=13305&selected_lang=es_ES&jobAlertController_jobAlertId=&jobAlertController_jobAlertName=&_s.crb=fl08QG2oV1akJFW%2fWVQ4Ol50v%2bs%3d',
  loc: 'Chile (CL)',
  timing: 'full time',
  title: 'Alumno en Practica'
}]
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,我收到此错误:

ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的“Alumno en Practica”、“ https://career5.successfactors.eu/career?career%5fns=job% ”附近使用的正确语法

表结构是这样的:

在此处输入图片说明

All*_*nde 5

看起来mysql.escape(data[i].title)已经在你的值周围加上单引号,所以你通过自己添加它们来加倍。

  • 不要删除 scape,删除你在你自己明确放入的字符串中的单引号。 (2认同)