İlk defa MySQL ile PDO kullanıyorum, şu anda onunla oynamak.PDO lastInsertId işlemlerde çalışmıyor mu?
Şimdiye kadar işlemlerde sarılmış bir ekleme yapmaya çalıştığında ...
$this->dbh->beginTransaction();
// $sql query ran
$this->dbh->commit();
echo $this->dbh->lastInsertId();
lastInsertId() Bir işlemin dışında aynı sorguyu çalıştırdığınızda, düzgün olsun ... 0 dönüyor Kimlik numarası döndü. Burada eksik olduğum bir şey mi var?
Çağrısı Deneyin
lastInsertId()
için sormak gerekir. –Zor bir PDO alışkanlığından tökezlediniz, evet, bir 'acı' olan 'lastInsertId' _before_' commit' diye adlandırmanız gerekecek, ama hatırlanması kolay bir şey. – Wrikken
@Wrikken: İşlemlerin genellikle birden çok "INSERT" ifadesini yürütmek için kullanılmasından dolayı, bunun kötü ve muhtemelen kasıtlı bir davranış olduğunu düşünmüyorum. Yani, 3 'INSERT' ifadelerinin bir işleminde ilk' INSERT' ifadesinin 'lastInsertId'ünü alabilmek için, her zaman bir' commit' yapmadan önce 'lastInsertId' olarak adlandırmanız gerekir. d diğer 2 'INSERT' ifadelerinden önce onu aramak zorunda. –