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

Javascript 使用nodejs在mysql中插入多个值会导致解析错误,javascript,mysql,node.js,Javascript,Mysql,Node.js,我需要使用nodejs在mysql中插入一条记录。我可以通过在查询中键入值直接插入。我可以使用query+value语法来连接这些值,但是读取这些值会带来SQL注入的风险 let sql=“插入游戏类型(strGameType、intTeamSize、intMaxPlayers、intMinPlayers)值?”; var gametype=“Solo Zonewars”; var-teamSize=1; var=16; var-minPlayers=10; var值=[游戏类型、团队规模、最

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

let sql=“插入游戏类型(strGameType、intTeamSize、intMaxPlayers、intMinPlayers)值?”;
var gametype=“Solo Zonewars”;
var-teamSize=1;
var=16;
var-minPlayers=10;
var值=[游戏类型、团队规模、最大玩家、最小玩家];
log(“作为id连接的””+connection.threadId);
查询(sql、值、函数(错误、结果、字段){
连接。释放();
如果(!err){
控制台日志(结果);
}else控制台日志(err);
});    

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

let sql ="INSERT INTO gametypes (strGameType, intTeamSize, intMaxPlayers, intMinPlayers) Values (?, ?, ?, ?) ";

我建议您不要使用数组,而是用这个数组替换查询


let sql=“在游戏类型(strGameType、intTeamSize、intMaxPlayers、intMinPlayers)中插入值(?,?,?)”您可以尝试将值包装到数组中,因为此方法用于插入多行:

   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);
    });