检查查询是否成功

时间:2019-07-09 07:45:47

标签: php laravel

我定义一个查询以删除数据库中的表。之后,我想显示一条消息,说明查询已成功运行。如何使用if语句进行检查?

$query = DB::table('user_users')->delete();     

return view('datenbank');

5 个答案:

答案 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 catchDB Transaction

try {
        DB::beginTransaction();

        // your code

        DB::commit();
    }catch (Exception $e) {

        DB::rollback();

        // other actions

    }