mysql - NodeJS mysql 如果为 null 或为空

标签 mysql node.js

我有代码,如果表不在 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/

相关文章:

php - 如何在 PHP 中从 MySql 读取波斯语字符串?

javascript - 如何处理 ECONNRESET,对等连接重置

node.js - 有没有私有(private) NodeJS 应用程序之类的东西?

mysql - 删除所有产品信息的 SQL 查询 Magento

mysql - MATCH AGAINST Mysql 没有给出正确的结果

php - 如果新行添加到 MySQL 表,如何实时检查

node.js - 是否可以在没有 Node 服务器的情况下构建 Electron 桌面应用程序?

javascript - 在 Typescript 中如何在绑定(bind)类型安全的同时 promise 一个函数?

javascript - Nodejs : How many . then() block 你能链接到一个 promise 吗?

python - 使用参数创建 MySQL 表时出现 TypeError