我正在从MYSQL数据库中获取Som数据。它检查电子邮件和日期以匹配用户电子邮件和所选日期,然后获取匹配的行数据。如果我使用表中存在的日期,那么一切都很好,但是当我使用不存在的日期时,我得到一个ER_PARSE_ERROR。
看起来像这样:
let date = 27/09/2019
let sql = `SELECT weigh, temp, length, cat, date FROM reps WHERE email = 'test@gmail.com' AND date = ?`;
connection.query(sql, [date], (error, result, fields) => {
if (error) throw error;
//here I do some stuff
当日期不在数据库中时,我得到以下信息:
Error: ER_PARSE_ERROR: 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 ')'
如果没有日期,它现在会使我的整个功能崩溃。相反,我只是希望它什么也不会让它继续运行。
我在下面尝试过,但仍然崩溃:
if (error) {
send.response('nothing');
}
任何想法如何解决这个问题?
最佳答案
终于解决了。我得到ER_PARSE_ERROR:的原因是因为我有一些依赖于MySQL输出的函数。当未显示来自MySQL的行时,发生错误。我通过说如果没有什么然后结束响应来解决它。这是代码:
if (error) { throw error;
} else if (!result.length) { //Checks if no results, then ends the response without doing anything, before it tried to do things when there was no result which caused the error.
return console.log('Date or email does not match any database rows');
response.end();
}