我在节点js的服务器端编写一些代码以更新MySQL数据库。

这是我的代码:

exports.addPlayerToMatch = function(uid,matchId){
    return new Promise(function(resolve,reject){
        dbFunctions.getPlayerUids(matchId).then(function(rows){
            playerUids = JSON.parse(rows[0].uids_of_players);
            playerUids.push(uid);
            console.log("new player uids: " +playerUids);
            numberOfPlayers = playerUids.length;
            db.query('UPDATE current_matches SET number_of_players = ?,
uids_of_players = ? WHERE id = ?' ,[numberOfPlayers,playerUids,matchId],
function (err, rows) {
                if (err){ console.log("ErrorForAddPlayerToMatch: "+err);}
            });
            resolve(numberOfPlayers);
        });
    });
};


这是错误:


  ErrorForAddPlayerToMatch:错误:ER_PARSE_ERROR:您的错误
  SQL语法;在第1行的“ 3d8b7210fc1999bf191b0e1f7d744269'WHERE id = 29'附近检查与您的MySQL服务器版本相对应的手册以使用正确的语法


我不知道 !!

请帮助。

最佳答案

问题是我忘记在查询中使用数组之前再次将数组变成JSON对象。

它将通过以下方式解决:

var playerUids = JSON.stringify(playerUids);


然后在查询中使用它。

10-04 15:52