我有代码,如果表不在 mysql 中或“NULL”或为空,则应该执行该代码。
mysqlConnection.query('SELECT `something` FROM `here` WHERE `dog` = \'' +info+ '\'', function(err, row, fields) {
if(err) {
console.log('Error1');
return;
}
else if (!row.length) {
console.log('Error2');
return;
}
else if (row[0].something == 'NULL' || row[0].something == '') {
console.log('Error3');
return;
}
console.log('Works');
});
所以问题是,如果“something”不在 mysql 中,控制台显示 Error2,但是如果“something”在 mysql 中,但如果它为 NULL,控制台显示 Works,那么问题是什么?我正在检查某些内容是否为 NULL,但它不会显示 Error3。如果表为空,则显示 Error3。感谢您的帮助。
最佳答案
我会尝试这样的事情:
mysqlConnection.query('SELECT `something` FROM `here` WHERE `dog` = ?', [info] function(err, row, fields) {
if(err) {
return console.log('Error1');
} else if (!row.length) {
return console.log('Error2');
} else if (!row[0].something) {
return console.log('Error3');
}
console.log('Works');
});
它使用“falsy”检查 row[0].something 如果值未定义、null 或空字符串,它将返回 false。它还修复了 t.niese 提到的注入(inject)攻击向量。
关于mysql - NodeJS mysql 如果为 null 或为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32170088/