繁体   English   中英

在mysql数据库节点js中动态插入多行?

[英]Inserting multiple rows dynamically in mysql database node js?

我试图使用节点js在mysql数据库中插入多行。这个想法是我有四个数组,每个数组有20个值。 我的目标是使用节点js动态插入数据库中的所有值。 现在,我有点困惑,我应该怎么做。 这是我的服务器文件 -

server.js - 
const express = require('express');
const app = express();

var db = require("./DatabaseConfig.js");

var cookieParser = require('cookie-parser');

var path = require('path');

var bodyParser = require('body-parser');
app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
    extended: true
}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.get('/', function (req, res) {
    res.send('Hello World!')
});

app.listen(4000, function () {
    console.log('Example app listening on port 4000!')
});

app.get("/home",function(req,res){
    res.render("Home.ejs");
});

app.post("/home",function(req,res)
{
var data = JSON.parse(req.body.info);
console.log(data.length);
var counter = [];
var publicationtitle=[];
    var publicationdate =[];
    var publicationlink=[];
for(var i=0;i<data.length;i++)
{
    counter.push(0);
    publicationtitle.push(data[i]["title"]);
    publicationdate.push(data[i]["pubDate"]);
     publicationlink.push(data[i]["link"]);
}
var res = db.dbconfig();


    var values = [
        publicationtitle, publicationlink,publicationdate,counter
    ];

    console.log("values",values);
   db.insertrecord(values);
    values=[];


});



DatabaseConfig.js

    var mysql      = require('mysql');
    var con = mysql.createConnection({
        host     : 'localhost',
        user     : '****',
        password : '****',
        database : 'test',
        multipleStatements: true
    });


    var values = [];






    module.exports = {
        dbconfig: function(error) {
            con.connect(function(err) {
                if (err) throw err;
                console.log("Connected!");
            });

        },

        insertrecord:function(values){
            var sql = "INSERT INTO rsscontent (title,link,date,count) VALUES ?";


            con.query(sql,[values], function(err) {
                if (err) throw err;
                con.end();
            });

        }


    };

任何建议或建议将受到高度赞赏。

您可以像这样构建查询和值:

    let placeholder = users.map(() => "(?, ?)").join(",");
    let query =
        `INSERT INTO ${TABLE_NAME.USER}
        (id, username)
        VALUES ${placeholder}`;

    let values = [];
    users.forEach(user => {
        values.push(user.id);
        values.push(user.username);
    });

一直在使用它,它工作得很好。

除了已经回答的内容之外,你的INSERT语句必然会抛出错误,因为date是一个关键字,应该像那样进行转义

var sql = "INSERT INTO rsscontent (title,link,`date`,count) VALUES ?";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM