用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);//未更新
}
}