2017-09-14 68 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