Node.js MySQL批量插入操作失败

时间:2017-09-11 06:06:41

标签: mysql sql-server node.js

下面是我的MYSQL Db质量插入代码

connectionPool.getConnection(function(err, connection){
        if(err) {
            winston.log('info', '------- ERROR while getting connection: ' + err.message);
            connection.release();
            return;
        }

        connection.query('INSERT INTO PollOptions (idPollOption, Option, PollId) values ?', [pollOptionsArray], function(err, rows){
            if(err) {
                winston.info('info', '----------------------- ERROR: ' + err);
                connection.release();
                return;
            }
            connection.release();
        });
    });

pollOptionsArray的位置

[
  ["POPE1lrKXMy9Q","Adam","POLL4yrFXzkcX"],
  ["POPVy-StXGJcm","Mike","POLL4yrFXzkcX"],["POPNkMSFmGy97","Lucy","POLL4yrFXzkcX"]
]

数据库表包含以下列

  

idPollOption,Option,PollId(all VARCHAR)

它给了我以下错误:

  

错误:错误:ER_PARSE_ERROR:您的SQL语法中有错误;   检查与您的MySQL服务器版本对应的手册   在'Option,PollId)值附近使用正确的语法('POPE1lrKXMy9Q',   'Adam','POLL4yrFXzkcX'),(第1行的'POPVy-StXGJ'

我甚至试图像这样硬编码我的sql输入:

var temp = [
        ['123', 'demian@gmail.com', 'POLLVJsBGIjYQ'],
        ['345', 'john@gmail.com', 'POLLVJsBGIjYQ'],
        ['567', 'mark@gmail.com', 'POLLVJsBGIjYQ'],
        ['678', 'pete@gmail.com', 'POLLVJsBGIjYQ']
    ];

但它仍然给我同样的错误。我不明白我做错了什么。很明显,我的SQL语法在值上是不正确的,但补救措施是什么?

我甚至试图删除pollOptionsArray中的'[]',它给了我同样的错误。

知道这里发生了什么吗?

1 个答案:

答案 0 :(得分:0)

因此我的语法没有问题。问题是名为" Option"的列。 显然"选项"是MySQL中的保留关键字,因为我用它来命名我的专栏,它给了我麻烦。