【PHP】【Mysql】【thinkphp】,Thinkphp save()方法执行update操作的返回值问题

本文探讨了使用Thinkphp框架中Model的save()方法进行update操作时,不同返回值的含义。当save()方法执行失败时,会返回false,必须使用恒等于(===)进行判断。如果执行成功但未改变任何记录,返回值为0;如果执行成功并修改了数据,返回值是受影响的行数。同时,文章也提及了原生MySQL的mysql_affected_rows()函数如何判断更新操作的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用Thinkphp的Save()方法执行update操作

$res=M('erp_goods')->where(array('goods_id'=>$goods_id,'attr'=>$goods_attr))->save($data);
               if($res===false){
                   $this->ajaxReturn(0);//更新失败
               }
               else{
                   if($res>0){
                       $this->ajaxReturn(1);//更新成功
                   }
                   else{
                       $this->ajaxReturn(2);//未更新
                   }
               }


$res是为返回结果

当执行失败时返回false。这个时候判断执行失败一定要用恒等于(===)来判断,因为如果用等于==的话,当$res返回0时,也是可以通过的。

当sql语句执行成功,但没有更改数据库(受影响行数为0),则返回0。

当sql语句执行成功,有更改数据库(受影响函数>0),则返回受影响的函数。



如果用原生的update语句,如何判断呢?

假设执行结果是$res

           

     $res=mysql_query("UPDATE table_name SET column_name = new_value  WHERE column_name = some_value");

              if($res===false){
                   $this->ajaxReturn(0);//更新失败
               }
               else{
                   if(mysql_affected_rows()>0){
                       $this->ajaxReturn(1);//更新成功
                   }
                   else{
                       $this->ajaxReturn(2);//未更新
                   }
               }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值