mysql修改失败_mysql修改数据失败(是我的代码有问题吗)怎么解决?

你把sql2改为这样试试。varsql2 = 'UPDATE person SET name=?,sex=?,depart=?,s1=?,s2=?,s3=?,s4=?,s5=? where id=?';

我不知道你用的什么模块连接MySQL的

connection.query($sql2,[id2, name, sex, depart, s1, s2, s3, s4, s5]

,function (err,result) {

});

回答你评论中的问题

在使用一个不熟悉的模块或者框架时,尽量先看文档,如果是英文的,看不懂也没关系

因为在里面会有例子,照着例子试试,就会有一点了解啦,然后有疑惑的地方再问

但是我看你这样这样写,猜测,query方法的第二个参数是数组,应该是替换SQL语句中的参数.一般参数在SQL语句中,都是使用?占位

所以,你这里,应该有两种执行SQL语句的方式.

第一种

var $sql2 = 'UPDATE person SET name="'+name+'",sex="'+sex+

'",depart="'+depart+'",s1="'+s1 +'",s2="'+s2+'",s3="'+s3+

'",s4="'+s4+'",s5="'+s5+'" where id='+id2;

console.log($sql2);

connection.query($sql2,function (err,result) {

});

这种方式是,直接在代码里面拼接成一条SQL语句,然后执行.这种方式,可以将SQL打印出来,直接在数据库执行(字符串需要加引号引起来,我不知道你各个字段的类型,所以全部加了引号).

这种方式是不推荐使用的,因为会有SQL注入的风险

第二种

var $sql2 = 'UPDATE person SET name=?,sex=?,depart=?,s1=?,s2=?,s3=?,s4=?,s5=? where id=?';

var params = [id2, name, sex, depart, s1, s2, s3, s4, s5];

connection.query($sql2, params, function (err,result) {

});

这种方式是,在SQL语句($sql2)中,变量使用?代替,然后将参数放入数组中(params),SQL语句($sql2)中的?数量要与数组(params)的长度一直,因为会按顺序,将问号替换为数组中的值,替换这一步是框架帮你完成的,并且会对关键字转义.避免SQL注入的风险

推荐使用这种方式执行SQL语句.

可能有些细节的地方说错了,因为我也不是太懂底层的东西:) 不过,基本就是这样啦

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值