Herkeze merhabalar benim bir sorum olucak.
Diyelimki iki tane mysql tablom var ve birbiri ile ilişkili.
satislar ve satis_detay şeklinde,
satislar
---------------------------------------------
|id | kullanici_id | musteri_id|musteri_adi |
| 1 | 1 | 10 | Burak |
| 2 | 2 | 12 | Mehmet |
| 3 | 1 | 10 | Burak |
---------------------------------------------
satis_detay
------------------------------------------
|id | kullanici_id | satis_id |urun_adi |
| 1 | 1 | 1 | A Ürünü |
| 2 | 2 | 2 | B Ürünü |
| 3 | 1 | 1 | C Ürünü |
------------------------------------------
Şimdi bir tane satış sayfasında birtane form olduğunu düşünün ben önce
formu satislar adlı tablo gönderiyorum ve daha sonra sayfada kaç
adet ürün varsa onlarıda döngüye sokup satis_detay tablosuna kayıt ediyorum.
bunu yaparkenken satislar sayfasına insert işlemi yaptıkdan sonra lastInsertId()
id yi alıp satis_detay toblosunda satis_id ekliyorum ve şuanda hiç bir sorun yaşamıyorum.
beginTransaction() fonkisyonunuda kullanıyorum kodlarımda.
Senaryoyu şöyle düşünelim neticede onlarca kullanıcım var ve hepsi aynı anda satis yaptığını düşünün
o zaman lastInsertId() çakışırmı bu lastInsertId() bir koşula bağlayarak yani lastInsertId() alıp daha sonra bir SELECT ile kullanici_id alıp karşılaştırıp ona göremi
satis_detay sayfasına kayıt ettiriyim yada bunun başka bir yolu varmı , yada hiç birşey yapmama gerek yok mu
PDO Lastinsertid
1
●90
- 15-02-2020, 15:27:22Kimlik doğrulama veya yönetimden onay bekliyor.
- 15-02-2020, 15:56:07lastInsertId size o kullanıcının kaydettiği verinin ID numarasını return eder. Tablodaki son verinin ID sini değil.
Şu şekilde denerseniz size 0 değerini return ettiğini göreceksiniz.
<?php // pdo db bağlantı kodları... $last_id = $db->lastInsertId(); print "Son veri ID si = " . $last_id; // 0