mysql更新安全设置时出错_mysql – 执行UPDATE时出错

我在使用节点

mysql2模块执行更新查询时遇到了一些麻烦.我正在使用’?’准备查询占位符然后传递值如此;

socket.on('connection', function(client){

[...]

client.on('userjoin', function(username, userid){

run_db_insert("UPDATE users_table SET clientid = ? WHERE user = ?", [client.id, userid], function(){

console.log(client.id + ' <=> ' + userid);

});

[...]

});

不幸的是,这引起了一个错误;

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在”12345678’附近使用正确的语法’WHERE userid =?’在第1行

数据未反映在数据库中.出于某种原因,代码似乎没有拾取第二个问号占位符,因此它没有传递正确的值(即它试图找到用户ID?).

如果我将代码更改为此;

run_db_insert("UPDATE users_table SET clientid = ? WHERE user = '" + userid + "'", [client.id], function(){

…然后更新运行没有错误,并反映在数据库中.如果我在console.log中同时使用client.id和userid,则控制台会正确反映这些值.

我的run_db_insert函数如下;

function run_db_insert(sql, args, callback){

var mysql = svc_mysql2.createConnection({

// connection details

});

mysql.connect(function(err){

if(err){

console.log('Error connecting to DB: ' + err);

}

});

mysql.query(sql, [args], function(err){

if (err){

console.log(err);

return;

}

callback();

});

mysql.end();

};

我使用多个’?’执行SELECT或INSERT查询没有问题.占位符(稍微修改过的函数导致该函数的第11行然后在回调中返回),但我发现UPDATE没有正确地分配我传递给它的所有参数.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值