这是我的代码,您可以在其中看到删除命令的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事件中也不会显示任何错误。 我应该做别的事吗??
答案 0 :(得分:0)
即使没有行匹配(正在删除),DELETE
语句也不会抛出错误。但是delete()
将返回受影响的行数。我想你想做这样的事情:
$affected = DB::table('t_users')->where('id', '=', '')->delete();
if($affected == 0){
return Functions::createErrorResponse(400, 'E200', 'User not found');
}