• 15-02-2020, 15:27:22
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    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
  • 15-02-2020, 15:56:07
    #2
    lastInsertId 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