这是我的代码,您可以在其中看到删除命令的where条件为空
try{
DB::table('t_users')->where('id', '=', '')->delete();
} catch (Exception $e){
return Functions::createErrorResponse(400, 'E200', $e->getCode() . ' - ' . $e->getMessage());
}
但这里没有显示任何错误。,如果我使某些错误的表名,则它会将错误显示为..
{
"error": {
"code": 400,
"type": "E200",
"message": "42S02 - SQLSTATE[42S02]: Base table or view not found: 1146 Table 'globalops.t_charts' doesn't exist (SQL: delete from `t_charts` where `id` = )"
}
}
这很好,
有人能告诉我为什么即使我把代码放在try-catch事件中,它也不会显示任何错误吗。我该做点别的吗。。?
即使没有匹配的行(正在删除),DELETE
语句也不会抛出错误。但是,delete()
将返回受影响行的计数。我想你想做这样的事情:
$affected = DB::table('t_users')->where('id', '=', '')->delete();
if($affected == 0){
return Functions::createErrorResponse(400, 'E200', 'User not found');
}