mysql - Node.js-mysql : Bad field Error

标签 mysql node.js async.js

我解析一个大的 csv 并将每行插入到我的 mysql 表中。

解析后我做了很多计算和转换并将其保存到一个新对象

  obj.push({                                                         
   "ID": value.id,
   "col1": value.calc1,
   ... });

对象完成后我会:

async.forEach(obj, function (Insertobj, callback) {

 var query = conn.query('INSERT INTO table SET ?', Insertobj);

  },function (err){ 
      if (err) {                                                     
        console.log(err);                                             
        console.log('failed to process');
 }}

运行完 obj 后我得到 =>

Error: ER_BAD_FIELD_ERROR: Unknown column 'NaN' in 'field list'..

但是他将完整的对象插入到我的表中!我没有任何名为 NaN 或空列的列。我该如何调试它?我尝试将console.log设置为err.sql,但他打印“未定义”。在连接中使用 debug:true 对我没有帮助。

最佳答案

我认为您误解了如何使用 Node js 模块转义 mysql 值。该错误是由于您没有指定要更新的列。除此之外,应该使用数组而不是对象来填充转义值。值按照它们在查询中转义的顺序排列。您的代码可能如下所示:

    valuesarray.push([                                                         
       value.id,
       value.calc1
    ]);

    async.forEach(valuesarray, function ( insertarray, callback ) {

        var query = conn.query('INSERT INTO table SET ID = ?, col1 = 
        ?', insertarray);

    },function (err){ 
        if (err) {                                                     
            console.log(err);                                             
            console.log('failed to process');
        }
    });

关于mysql - Node.js-mysql : Bad field Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48429473/

相关文章:

mysql - 从多对多字段 django 中获取所有唯一/不同的元素

node.js - 即使 key 不存在,如何插入DynamoDb

node.js - nodejs 异步库和 redis

php - 从mysql数据库中获取数据并用主键值(id)显示它们

php - MySQL NOW() 和 PHP 日期 ('c' 之间的区别)

mysql - 如何在文件中记录 SQL 批处理查询

node.js - npm WARN 已弃用 minimatch@2.0.10 但我有更新的版本

node.js - 收到错误 args.includes is not a function Node js

javascript - 异步自动 : stop entire chain after first error

javascript - Node.js 和异步错误