mysql 能否用PHP 实现 一条SQL语句实现多条选定数据的修改

时间:2022-10-16 00:59:01
因为select 和delete where 都可以用 in ($p) 来实现多条的数据的查询 删除   但是update 使用in  就会报错  ;
我的SQL语句是这样的
  $sql = "update ten_server set mothed='',ip='' where id in (%s)";
  M()->execute($sql, $id); 

 这样的写法为啥不可以呢   能不能我们自己改源码完善完善
最后我只能通过foreach循环一条条插入 ;感觉这样会不会影响效率什么的;

8 个解决方案

#1


报什么错?

#2


语法本身是没有问题的呀,不知道什么鬼

#3


 $sql = "update ten_server set  mothed='',ip='' where id in (%s)";

拼错了吧
应该是method ?

#4


字段没有错误  用where in 的时候报错是sql语句错误 ;然后我循环里面一条条插入式可以执行的 不知道为什么

#5


报错就贴出错误。

#6


错误提示是这样的 

1064:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 [ SQL语句 ] : update ten_server set mothed='',ip='' where id in ()
错误位置

FILE: /usr/local/nginx1.8/html/ThinkPHP/Library/Think/Db/Driver.class.php  LINE: 350

#7


update ten_server set mothed='',ip='' where id in () 这不是$id没传进去吗?

#8


找到问题了.原来我最后面字符串没有处理掉最后的一个 ","  用rtrim()处理之后就可以用了  ;虽然我昨天也处理了  但是不知道错误在哪  今天重新写了一遍就可以了 谢谢大家帮忙     

#1


报什么错?

#2


语法本身是没有问题的呀,不知道什么鬼

#3


 $sql = "update ten_server set  mothed='',ip='' where id in (%s)";

拼错了吧
应该是method ?

#4


字段没有错误  用where in 的时候报错是sql语句错误 ;然后我循环里面一条条插入式可以执行的 不知道为什么

#5


报错就贴出错误。

#6


错误提示是这样的 

1064:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 [ SQL语句 ] : update ten_server set mothed='',ip='' where id in ()
错误位置

FILE: /usr/local/nginx1.8/html/ThinkPHP/Library/Think/Db/Driver.class.php  LINE: 350

#7


update ten_server set mothed='',ip='' where id in () 这不是$id没传进去吗?

#8


找到问题了.原来我最后面字符串没有处理掉最后的一个 ","  用rtrim()处理之后就可以用了  ;虽然我昨天也处理了  但是不知道错误在哪  今天重新写了一遍就可以了 谢谢大家帮忙