我在节点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);
然后在查询中使用它。