Veritabanı Tablosundaki Son Verinin ID Bilgisini Öğrenmek [Laravel]

Yazar:



Programlamada kimi zaman, veri tabanı tablosuna en son eklenen kullanıcının id bilgisine ihtiyaç duyabiliyoruz. Bunun için SQL kodlarıyla çok farklı kombinasyonlar yaratarak, farklı farklı yöntemlerle tablodaki son verinin ID bilgisini çekmek mümkün.

Veritabanındaki son ID'nin çoğu zaman muamma olmasının en büyük sebebi ise, veritabanındaki id bilgisini auto_increment yapmamızdan kaynaklanmaktadır. Bu yazıda, bir PHP framework'ü olan Laravel'de, veritabanı tablosundaki son verinin ID'sinin nasıl çekileceğini göstereceğim. Laravel'deki basit fonksiyonları kullanarak bunu 2 şekilde gerçekleştirebilmek mümkün. Bu yöntemlerden bir tanesi, veri eklendikten sonra, son verinin ID bilgisini çekmek. Diğer bir yöntem ise veri, veritabanına kaydolduktan sonra geri dönüş değeri olarak, eklenen o verinin ID değerini almak.

laravel son id bilgisini almak
Yöntemlerden ilkinde normal yollarla veriyi veritabanına kaydettiğinizi varsayalım. Veri kayıt olduktan sonra last() fonksiyonu ile son eklemiş olduğunuz verinin ID bilgisini elde etmeniz mümkün olabilmektedir.

Örnek kullanım :
 $idBilgisi= Model::all()->last()->ID; 

İkinci yöntem ise, veriyi hem veritabanına kaydederken aynı zamanda kaydettiğiniz verinin ID bilgisini elde edebiliyorsunuz. Bu yöntem sadece, veritabanınızdaki id kolonunuz auto_increment ise çalışır. Çünkü siz veriyi veritabanına eklediğiniz sırada, auto_increment özelliğinden dolayı verinize otomatik olarak bir ID atanmış oluyor ve siz o atanan ID'yi geri dönüş değeri olarak almış oluyorsunuz.

Örnek kullanım :

 $kullanici = new KullaniciBilgileri(); 
 $kullanici_id = $kullanici->insertGetId($dataKullanici); 

$dataKullanici değişkeni burada bir dizidir. Bu dizi, veritabanına eklenecek olan verileri tutmaktadır. Örneğin Laravel'deki only fonksiyonu ile formdan post edilen verileri alıp bir dizide tuttuğunuzu varsayın. Nasıl ki veritabanına veri kaydederken fill() fonksiyonu içerine verilerin yer aldığı bir dizi değişkeni yazıyorsak, buradaki insertGetId ifadesi de aynı mantık ile çalışıyor. Tek farkları, fill() fonksiyonu geri dönüş değeri döndermezken, insertGetId() fonksiyonu bize geri dönüş değeri olarak eklemiş olduğumuz verinin ID bilgisini dönderiyor. Örneğe göre bu id bilgisini ise $kullanici_id değişkeninde tuttuğumuzu varsaydık.

İkinci yöntem, göze daha pratik ve daha akılcı gelse bile her iki yöntemin de farklı durumlarda farklı avantajları vardır. Her iki yöntemi de anladıysanız eğer, problemlerinizde hangisini kullanacağınız konusunda en uygun kararı kendiniz verebilirsiniz. Konuyla ilgili yorumlarınızı aşağıdaki yorum formuna yazabilirsiniz.

3 yorum:

  1. Güzel ve yararlı bir makale olmuş, teşekkürler.

    YanıtlaSil
  2. Ali bey bu konuyla alakası yok ama birşey soracaktım bilgisayar da ddr4 ram var..bu ramler hdd gibi veri depolama yapmaz değil mi başka bir bilgisayara takılıp direk kullanılabilir değil mi?

    bu arada twitter hesabınız aktif mi acaba ekledim

    YanıtlaSil
    Yanıtlar
    1. RAM ve depolama hafızaları arasındaki farkı şuradaki yazımda : http://www.blogkafem.net/2014/02/ram-ile-depolama-hafizalari-arasi-fark.html

      detaylı olarak anlattım. Linke tıklayarak o yazıyı okursanız eğer, aklınız takılan sorulara cevap bulursunuz.

      Sil
Yorum Sayfası :


Yorum formuna konuyla ilgili görüş ve sorularınızı bırakabilirsiniz.

Yorumunuza mümkün olan en kısa sürede dönüş yapılacağından emin olabilirsiniz.


Eklenen yorumlar, moderatör onayından sonra yayınlanmaktadır.

BLOGKAFEM.NET © Copyright 2008-2023
Sitedeki yazıların her hakkı BLOGKAFEM.NET sitesine aittir.
Kopyalanması halinde lütfen kaynak gösteriniz.
DMCA.com Protection Status
Anasayfa | Hakkında | İletişim