javascript - 无法使用 Node.js 批量插入到 mysql

标签 javascript mysql node.js insert bulk

我正在使用 Node.js 编写服务器应用程序,但使用 mysql library 时遇到问题.

当我尝试批量插入数据库时​​出现问题,这是我正在使用的示例代码。

const sql = require("mysql")

//Connection settings
const sqlConfig = require("../settings");

function executeSql(queryData, callback){
    let connection = sql.createConnection(sqlConfig.dbConfig);
    connection.connect(function(err){
        if(err){
            console.error('connection error: ' + err.stack);
            callback(null, err);
            return;
        }

        connection.query(queryData, function(error, results, fields){            
            if(error){
                console.error('error: '+error.stack);
                callback(null, error);
                return;
            }
            callback(results, null);
        });
    });
};

let sqlquery = "INSERT INTO table(val1, val2) VALUES (?)";

let val1 = [1,2,3,4];
let val2 = 1;

let values = [];

for(let i = 0; i<val1.length, i++)
    values.push([val1[i], val2]);

let queryData = {
    sql: sqlquery,
    values: values
}

executeSql(queryData, function(data, err) {
    if (err) {
        console.error(err);
    } else {
        console.log("success"); 
    }
});

问题是程序打印出“成功”,但在我的数据库中只有一行数据而不是 4 行,我不知道这有什么问题。

最佳答案

好吧,问题是它需要数组的数组的数组,而查询很糟糕。

这是正确的查询

let sqlquery = "INSERT INTO table(val1, val2) VALUES ?";

创建 queryData 对象时:

let queryData = {
    sql: sqlquery,
    values: [values]
}

关于javascript - 无法使用 Node.js 批量插入到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46004319/

相关文章:

css - 样式 css 文件未应用于我的网站,因为我猜是因为新的 Windows 更新

javascript - 在 div 中查找 ul 并使用 jquery 将 li 标记附加到该 ul

mysql - 除了数据库设置和连接之外,在 Django 中使用 MySQL 而不是 SQLite3 时还有其他区别吗?

javascript - 如果前面没有反斜杠,如何匹配粗体 Markdown ?

mysql - XAMPP MySQL 端口 3306 未更改

mysql - bash 子命令中密码的安全性

node.js - 如何在azure(Web应用程序)中部署nuxt(nuxt.js)? (未找到模块)

Node.js:比较可能不存在的嵌套对象属性

javascript - Angular 中的 d3.js - 属性 'event' 在类型 'typeof import 上不存在

javascript - 对选定的已排序元素应用不同的颜色