i'm using laravel , i'm trying massive insert :
try { foreach ($users $key => $user) { db::table('users')->insert( [ 'name' => $user->user_name, 'email' => $user->user_email, ] ); } } catch (\exception $e) { //something }
so $users
big array , insert each element. have unique constraint on field email, so, if have in array multiple same emails, error "duplicate entry" , query stop.
how can continu insertion if have duplicate entry ? can ignore them ? (and them debug)
thanks !
you can use try\catch
, catch illuminate\database\queryexception
.
try{ db::table('users')->insert( [ 'name' => $user->user_name, 'email' => $user->user_email, ] ); } catch(illuminate\database\queryexception $e) { //i want consume , continue, nothing here. }
an error code provided through $e
, , 1062
duplicate key
warning. can inside of catch
block.
catch (illuminate\database\queryexception $e){ $errorcode = $e->errorinfo[1]; if($errorcode == 1062){ // houston, have duplicate entry problem } }
Comments
Post a Comment