Laravel Query Builder ayrıca, veritabanı tablosuna kayıt eklemek için kullanılabilecek bir ekleme yöntemi sağlar. Insert yöntemi, bir dizi sütun adı ve değeri kabul eder. Yani insert metoduna göndereceğimiz ilk değer veritabanı tablosundaki sütun adı ikinci değer ise o sütuna kaydetmek istediğimiz değeri belirtir.

Mesela users tablomuz olduğunu varsayalım. Bu tabloya veri eklemek için aşağıdaki kod bloğunu kullanabiliriz.

DB::table('users')->insert([
    'email' => 'serkan@bilisim34.net',
    'user_name' => 'serkan'
]);

Laravel İle Veritabanına Birden Fazla Kayıt Eklemek

Bazı durumlarda veritabanına birden fazla kayıt eklememiz gerekebilir. Bunun için insert metodu içerisine birden fazla dizi göndererek veritabanına birden fazla kayıt eklemesini sağlayabiliriz.

DB::table('users')->insert([
    ['email' => 'serkan@bilisim34.net', 'user_name' => 'Serkan'],
    ['email' => 'ali@bilisim34.net', 'user_name' =>'Ali'],
]);

Laravel insertOrIgnore Metodunun Kullanımı

Diyelimki veritabanına birden fazla kayıt ekleyeceksiniz. Ama kaydetmek istediğiniz veriler arasında veritabanında zaten kayıtlı olan verilerde var. Bu durumda insertOrIgnore metodunu kullanabilirsiniz. Bu metot sayesinde eklemek istediğiniz veriler arasında halihazırda veritabanında kayıtlı olan metot varsa onu es geçip eklemeye devam edecektir.

DB::table('users')->insertOrIgnore([
    ['email' => 'serkan@bilisim34.net', 'user_name' => 'Serkan'],
    ['email' => 'ali@bilisim34.net', 'user_name' =>'Ali'],
]);

Laravel Son Eklenen Değerin ID Değerini Alma – insertGetId Metodunun Kullanılması

insertGetId metodu ile veritabanı tablosuna son eklediğimiz verinin auto increment yani otomatik artan sütununun değerini alabiliriz.

$id = DB::table('users')->insertGetId(
    ['email' => 'serkan@bilisim34.net', 'user_name' => 'Serkan']
);

Laravel Upsert Metodunun Kullanılması

Upsert metodu eğer tabloda belirttiğimiz şekilde bir veri varsa onu günceller eğer veri yoksa tabloya belirttiğimiz şekilde veri ekler. Zaten anlamı da ekle veya güncelle olan bu metot oldukça kullanışlıdır. Performans olarak da bize avantaj sağlamaktadır. 3 parametre alır.

DB::table('users')->upsert([
    ['email' => 'serkan@bilisim34.net', 'user_name' => 'serkan', 'age' => 26],
    ['email' => 'ali@bilisim34.net', 'user_name' => 'ali', 'age' => 22]
], ['email'], ['age']);

İlk parametre eklemek veya güncellemek istediğimiz sütunları belirtir.

İkinci parametre ise tekrar etmeyen ve tek olması gereken sütunları belirtir.

Üçüncü ve son parametremiz ise veritabanında eşleşen bir kayıt varsa güncellememiz gereken sütunları belirtir.

Yukarıdaki örnekte laravel iki kayıt eklemeye çalışacaktır. Eğer kayıtlı olan email eklemek istediğimiz listede varsa o emaile ait satırın age sütununu güncelleyecektir.

Shares:

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir