2010-09-18 14 views
18

Zajmuję się podstawami PDO.Uzyskiwanie identyfikatora wkładki z wkładką PDO MySQL

Jednak Im próbuje uzyskać identyfikator wstawionego wiersza, Im przy użyciu:

$query = $system->db->prepare("INSERT INTO {$this->_table} (name,description) VALUES (:name,:description)"); 
$query->execute(array('name'=>$name,'description'=>$description)); 

Tutoriale mam natknąć są o transakcjach, jednak nie używam transakcji!

Odpowiedz

33

Pewnie szuka lastInsertId. "Zwraca identyfikator ostatniego wstawionego wiersza lub wartości sekwencji".

$insertedId = $system->db->lastInsertId() ; 
+2

Aha dzięki! Z jakiegoś powodu próbowałem wywołać ją w zmiennej $ query. – pondpad

10

Zwróć uwagę podczas korzystania z transakcji.

Jeśli zadzwonisz pod numer lastInsertedId po wywołaniu commit, lastInsertedId zwróci 0 zamiast identyfikatora. Zadzwoń pod lastInsertedId zaraz po execute, ale przed commit.

$this->db->beginTransaction(); 
$this->stmt->execute(); 
$id = $this->db->lastInsertId(); 
$this->db->commit(); 
Powiązane problemy