2017-09-14 67 views
0

如何檢查the query builder是否已成功插入我的數據?Laravel 5.5 - 如何檢查查詢構建器是否已成功插入數據?

$result = $this->database->table('user')->insert([ 
     'uuid' => $uuid, 
     'name' => $name, 
     'email' => $email, 
     'created_on' => $createdOn 
    ]); 

    print_r($result); // 1 

但是,如果我提供一個空數組:

$result = $this->database->table('user')->insert([]); 

    print_r($result); // 1 

我也得到了同樣的結果。

那麼知道數據是否被插入的最好方法是什麼?

+0

請不要鏈中的最後一個函數'insert',做這樣:'$結果= $ DB->插入([ ]);'哪裏'$ db = $ this-> database-> table('user');' –

+0

@MohamedKawsara爲什麼會這樣? –

+1

我的不好,你是對的,我認爲這是一個save(),鏈將返回對象本身,*不幸*,因爲你使用'insert()'而不是save(),你實際上不能告訴!因爲它就像這樣'if(empty($ values))return true;'你可以檢查文件'vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php'中的行'2092:9' ' –

回答

1

您可以使用insertGetId方法,然後檢查插入id存在:

$id = $this->database->table('user')->insertGetId($query); 
if(empty($id){  
    Log::error('Failed to insert row into database.'); 
} 
+0

測試但沒有區別。但是當它實際插入確定時,我得到一個0。 – laukok

+0

'user'表是否設置了主鍵? –

+0

表中沒有主鍵。但是uuid ... – laukok