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

残念ながら、あなたが 'insert()'を使っていてsave()を使っていないので、残念ながら、実際にはそれを伝えることはできません!これは 'if(empty($ values))がtrueを返すようなものなので、'ベンダー/ laravel /フレームワーク/ src/Illuminate/Database/Query/Builder.phpファイルから 'カラム' 2092: ' –

答えて

1

あなたはinsertGetIdメソッドを使用して、挿入されたidが存在して確認することができます。

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

がテストされましたが、違いはありません。実際にOKを挿入すると0になります。 – laukok

+0

'user'テーブルに主キーが設定されていますか? –

+0

テーブルの主キーがありません。しかし、uuid ... – laukok

関連する問題