2010-09-18 36 views
18

Im hiểu thấu đáo các kiến ​​thức cơ bản của PDO.Lấy id chèn với chèn PDO MySQL

Tuy nhiên Im cố gắng để có được id của hàng chèn, Im sử dụng:

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

Các hướng dẫn Tôi đã đi qua là liên quan đến các giao dịch, tuy nhiên tôi không sử dụng các giao dịch!

Trả lời

33

Có thể bạn đang tìm kiếm lastInsertId. "Trả lại ID của hàng được chèn vào cuối cùng hoặc giá trị chuỗi".

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

Ah ha thanks! Đối với một số lý do tôi đã cố gắng gọi nó trên biến $ query. – pondpad

10

Chú ý khi sử dụng giao dịch.

Nếu bạn gọi lastInsertedId sau khi gọi commit, lastInsertedId sẽ trả về 0 thay vì id. Gọi lastInsertedId ngay sau execute, nhưng trước commit.

$this->db->beginTransaction(); 
$this->stmt->execute(); 
$id = $this->db->lastInsertId(); 
$this->db->commit(); 
Các vấn đề liên quan