需要帮助将多行推入MySQL

时间:2016-06-21 18:06:24

标签: javascript mysql

我正在尝试将数据从一个文件推送到另一个文件以构建MySQL查询。下面的代码是我所在的位置。我有点失落,对MySQL很陌生,所以任何帮助都会很棒。总体思路是将两个记录同时插入表中。

提前感谢您的帮助。

INSERT INTO heroes (plantTypes, asset, cost, energy, isSunProducer, isShooter, isExploding,
 sunFrequency, shootingFrequency, damage, userId) 
VALUES (?,?,?,?,?,?,?,?,?,?,?), (?,?,?,?,
?,?,?,?,?,?,?)

INSERT INTO enemies (zombieTypes, asset, damage, vx, energy, userId) 
VALUES (?,?,?,?,?,?)
  

C:\ Users \用户杰森\桌面\ RCB_Classwork \ projectX创建\ AyCarambaZombiesRising \ node_modules \ MySQL的\ lib中   \协议\ Parser.js:78           扔错了; //重新抛出非MySQL错误

     

错误:ER_PARSE_ERROR:您的SQL语法中有错误;查看与MySQL服务器版本对应的手册,以便在'?,?,?,?,?,?,?,?,?,?,?)附近使用正确的语法   在第1行

        projectX.createNewUserHeroes(['plantTypes', 'asset', 'cost', 'energy', 'isSunProducer', 'isShooter', 'isExploding', 'sunFrequency', 'shootingFrequency', 'damage', 'userId'], ['shooterOne', 'test', 100, 100, 0, 1, 0, 0, 2, 100, req.session.user_id], ['shooterTwo', 'test', 100, 100, 0, 1, 0, 0, 2, 100, req.session.user_id], function(data){

            console.log("This is the right heroes data: " + data)   
        });

        createNewUserHeroes: function(table, cols, vals, cb) {
              var queryString = 'INSERT INTO ' + table;
              queryString += ' (plantTypes, asset, cost, energy, isSunProducer, isShooter, isExploding, sunFrequency, shootingFrequency, damage, userId) ';
              queryString += 'VALUES';
              queryString += ' (';
              queryString = queryString + printQuestionMarks(vals.length);
              queryString += ')';
              queryString += ', ';
              queryString += '(';
              queryString = queryString + printQuestionMarks(vals.length);
              queryString += ') ';

              console.log(queryString)

              connection.query(queryString, vals, function(err, result) {
                if (err) throw err;
                cb(result);
              });
            },

1 个答案:

答案 0 :(得分:0)

由于您在准备好的查询中加倍了问号的数量,因此您还需要将值数组加倍。您可以通过将vals连接到自身来执行此操作:

connection.query(queryString, vals.concat(vals), function(err, result) {
    ...
});