首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nodejs在mysql中插入多个值会导致解析错误

使用nodejs在mysql中插入多个值会导致解析错误
EN

Stack Overflow用户
提问于 2019-12-22 02:57:22
回答 3查看 48关注 0票数 2

我需要使用nodejs在mysql中插入一条记录。我可以通过在查询中输入值来直接插入。我可以使用查询+值语法来连接这些值,但是这样做会带来SQL注入的风险。

代码语言:javascript
复制
        let sql ="INSERT INTO gametypes (strGameType, intTeamSize, intMaxPlayers, intMinPlayers) Values ? ";
        var gametype ="Solo Zonewars";
        var teamSize =1;
        var maxPlayers = 16;
        var minPlayers = 10;
        var values = [gametype, teamSize, maxPlayers, minPlayers];

        console.log("connected as id '" + connection.threadId);
        
        connection.query(sql, values, function(err, result, fields) {
            connection.release();
            if(!err) {
                console.log(result);
            }else console.log(err);
        });    

下面是我从mysql得到的附加错误。它似乎在gametype变量两边加了额外的引号,而不是试图将其余的插入到查询中。有什么想法吗?error from mysql

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-12-22 03:05:02

我建议您不要使用数组,并将查询替换为以下查询

代码语言:javascript
复制
let sql ="INSERT INTO gametypes (strGameType, intTeamSize, intMaxPlayers, intMinPlayers) Values (?, ?, ?, ?) ";

然后您将一个接一个地传递这些值

票数 1
EN

Stack Overflow用户

发布于 2019-12-22 03:04:58

如果查询有4个值参数,那么也应该有4个问号。尝试将第一行更改为:

代码语言:javascript
复制
let sql ="INSERT INTO gametypes (strGameType, intTeamSize, intMaxPlayers, intMinPlayers) Values (?, ?, ?, ?) ";
票数 1
EN

Stack Overflow用户

发布于 2019-12-22 03:07:22

您可以尝试将值包装到数组中,因为此方法用于插入多行:

代码语言:javascript
复制
   let sql ="INSERT INTO gametypes (strGameType, intTeamSize, intMaxPlayers, intMinPlayers) Values ? ";
        var gametype ="Solo Zonewars";
        var teamSize =1;
        var maxPlayers = 16;
        var minPlayers = 10;
        var values = [
               [gametype, teamSize, maxPlayers, minPlayers]
        ];

    console.log("connected as id '" + connection.threadId);

    connection.query(sql, [values], function(err, result, fields) {
        connection.release();
        if(!err) {
            console.log(result);
        }else console.log(err);
    });    
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59439017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档