我定义一个查询以删除数据库中的表。之后,我想显示一条消息,说明查询已成功运行。如何使用if
语句进行检查?
$query = DB::table('user_users')->delete();
return view('datenbank');
答案 0 :(得分:1)
在查询构建器中使用delete
时,它将返回受影响的行数。
您的if语句只需要看起来像这样:
$query = DB::table('user_users')->delete();
if ($query) {
//query successful
}
如果您想更加明确,可以if ($query > 0) {}
如果查询有任何错误(错误),它将抛出Exception
,这意味着没有行受到影响。
答案 1 :(得分:1)
就我个人而言,我认为最好的解决方案是使用这样的 if 语句。
您的代码
$query = DB::table('user_users')->delete();
return view('datenbank');
解决方案
$query = DB::table('user_users')->delete();
// check data deleted or not
if ($query > 0) {
return response()->json('202 Accepted', 202);
} else {
return response()->json('404 Not Found', 404);
}
答案 2 :(得分:0)
如果查询未成功执行,Laravel通常会引发错误。但是,如果您真的想确定的话,可以在截断表格后立即查询该表格,以确保没有剩余数据。
DB::table('user_users')->delete();
// Test if no records are left in the table
$success = DB::table('user_users')->count() === 0;
return view('datenbank', compact('success'));
答案 3 :(得分:0)
我将建议使用try catch,因为laravel查询在发生某些错误时会引发异常...
$queryStatus;
try {
DB::table('user_')->where('column',$something)->delete();
$queryStatus = "Successful";
} catch(Exception $e) {
$queryStatus = "Not success";
}
return view('datenbank')->with('message', $queryStatus);
答案 4 :(得分:0)
您可以使用try catch
来DB Transaction
try {
DB::beginTransaction();
// your code
DB::commit();
}catch (Exception $e) {
DB::rollback();
// other actions
}