ThinkPHP3.2–save方法判断问题

在我们操作数据库更新时,经常会遇到要判断一个更新是否已经成功,

这样判断,出现一个奇怪的问题,即如果数据没有更新(与原数据相同),返回值判断为false。

$result = $Model->where('id=1')->save($data);
 if($result) {
 echo 'success'; 
}else{
 echo 'false'; 
}

而当我们需要在ThinkPHP如何判断一个更新操作是否成功时,可以用下面的方法:

$Model = D('Blog');  
$data['id'] = 10;  
$data['name'] = 'update name';  
$result = $Model->save($data);  
if ( false !== $result ){  
    $this->success('更新成功!');  
}else{  
    $this->error('更新失败!');  
} 

需要用 !== false 来判断更新是否成功,

因为save方法返回值是更新操作影响的记录数,有可能影响的记录数为0,但却更新成功的。

或者这种方式也可以

if( $result > 0 || $result ===0 ){  
//成功  
}else{  
//失败  
}

原创文章,转载请注明: 转载自HSBLOG

本文链接地址: ThinkPHP3.2–save方法判断问题