Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL在找不到数据时停止运行?(node.js)_Mysql_Node.js - Fatal编程技术网

MYSQL在找不到数据时停止运行?(node.js)

MYSQL在找不到数据时停止运行?(node.js),mysql,node.js,Mysql,Node.js,我正在从MYSQL数据库获取som数据。它检查电子邮件和日期以匹配用户的电子邮件和选择的日期,然后获取匹配的行数据。如果我使用表中存在的日期,一切都很好,但是当我使用不存在的日期时,我会得到一个ER_PARSE_错误 看起来是这样的: let date = 27/09/2019 let sql = `SELECT weigh, temp, length, cat, date FROM reps WHERE email = 'test@gmail.com' AND dat

我正在从MYSQL数据库获取som数据。它检查电子邮件和日期以匹配用户的电子邮件和选择的日期,然后获取匹配的行数据。如果我使用表中存在的日期,一切都很好,但是当我使用不存在的日期时,我会得到一个ER_PARSE_错误

看起来是这样的:

    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_错误的原因是:我隐藏了一些依赖于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();
  } 

“当日期不在数据库中时,我得到这个”错误表明您的SQL是错误的,而不是日期不在那里。没有特定数据不会引发错误,只会返回一个空数据集。可能您正在将未定义的数据作为日期变量传递,并且sql变得无效。在执行之前尝试添加对变量的检查query@VLAZ当我选择数据库中的日期时,我得到的数据集没有任何错误。当日期不存在时,它会给出解析错误,而不是空的dataset@JackTurky很抱歉,日期变量是有效的,我以前尝试过console.log它,它显示的是正确的日期。您的字段
日期的类型是什么?如果是
时间戳
日期时间
、或
日期
,则需要以
YYYY-MM-DD
的正确格式提供值。此外,如果您使用的是
datetime
timestamp
,则需要确定查询范围以包括该日期的所有时间:
。。。和日期(日期)=?
。在您的示例中,
date
变量应该是一个
字符串(用引号或记号括起来),因为它不是转换为
string
,它将解析为一个数学函数,并且(至少在本例中)日期将等于
0.0014858841