【发布时间】:2019-05-08 14:42:42
【问题描述】:
您好,我正在使用 node 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();
}
})
我正在尝试将此数据插入数据库:
[{
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'
}]
但是由于某种原因,我得到了这个错误:
ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'Alumno en Practica'',''https://career5.successfactors.eu/career?career%5fns=job%' 附近使用正确的语法
表结构是这样的:
【问题讨论】:
-
请将表格定义添加为文本。
-
我在您的查询中看到了
JSON.stringify(time)和JSON.stringify(date),但是您要插入数据库的数据中不包含键time。您的意思可能是JSON.stringify(data[i].timing)和JSON.stringify(data[i].date)? -
不,日期和时间是分开的
-
完成@Alfabravo
-
'function' 是保留字,您的一个字段正在使用它:
mysql.escape(data[i].function)