ThinkPHP中關於未修改信息執行save()方法提示修改失敗的解決方案
ThinkPHP中更新數據使用save()方法,但當未進行信息修改時執行save()方法會返回0。如果使用返回值是否存在作爲判斷條件,系統會認爲修改失敗。
以下是錯誤的演示,當未作修改時會提示修改失敗!
$modifyClass =M("Class")->save($dataClass);
//直接根據返回字段是否存在判斷是否成功
if($modifyClass){
$this->success('修改成功','class_msg');
}
else{
$this->error('修改失敗');
}
進行改進後,未作修改也會提示修改成功!
$modifyClass =M("Class")->save($dataClass);
//讓返回值和false作恆等比較判斷是否成功
if($modifyClass !== false){
$this->success('修改成功','class_msg');
}
else{
$this->error('修改失敗');
}
修改程序的同時去查看開發手冊,在數據更新部分,手冊有特別的提示
注意:save方法的返回值是影響的記錄數,如果返回false則表示更新出錯,因此一定要用恆等來判斷是否更新失敗。
即:save()方法執行失敗返回false,無修改操作返回0,爲了避免兩者混淆,在判斷是否更新成功時需要用恆等判斷而不是根據返回值是否存在判斷。