首页 > 解决方案 > nodejs中的错误SQL语法

问题描述

我像这样在nodejs中写了一个SQL查询

router.get('/bookingAppointment', function (req, res, next) {
var specialty = req.query.specialty;
var doctor = req.query.doctor;
var date = req.query.date;
var newdate = date.split('/').reverse().join('-');
var stm = "SELECT numericalOrder, date"
    + "FROM appointment "
    + "WHERE specialty = '" + specialty + "' AND doctor = '" + doctor 
    + "' AND date ='" + newdate + "' AND status = 0 "
    + "ORDER BY numericalOrder asc "
    + "LIMIT 1";
con.query(stm, function (err, results) {
    if (err) throw err;
    res.send(JSON.stringify({ "status": 200, "error": null, "response": results }));
});

});

但我收到以下 SQL 语法错误

ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'WHERE special = 'KNTK' AND doctor = 'Nguyễn Văn A' AND date ='2018-7-15' AN' 附近使用正确的语法

任何人都知道为什么我的查询中断?

标签: mysqlsqlnode.jsexpress

解决方案


检查你的sql,你会发现date和之间没有空格FROM

var stm = "SELECT numericalOrder, date " //need to add a space here
    + "FROM appointment "
    + "WHERE specialty = '" + specialty + "' AND doctor = '" + doctor 
    + "' AND date ='" + newdate + "' AND status = 0 "
    + "ORDER BY numericalOrder asc "
    + "LIMIT 1";

推荐阅读