--begin itlife365 jiandanjie
Thinkphp 在数据库更新(save)的时候,如果字段没有被修改会更新失败,这是为什么?的解决办法
版本3.1.3
看了源代码:
无更新返回的是-1啊?false是更新失败,正数是更新的条数
如果查询错误或者数据非法返回false
如果更新成功返回影响的记录数
解决办法:
save方法的返回值是影响的记录数,如果返回false则表示更新出错。
如果字段没有被修改,则返回0,并不是失败。
所以判断是否失败使用if($result !== false) 即 不恒等于
比如:
$vo = $database_supplier->data($data_supplier)->save();
if($vo ){
$this->success('修改成功', U('Supplier/index'));
}else{
$this->error('修改失败!');
}
改为
$vo = $database_supplier->data($data_supplier)->save();
if($vo !== false){
$this->success('修改成功', U('Supplier/index'));
}else{
$this->error('修改失败!');
}
--end itlife365 jiandanjie