2010-09-18 12 views
18

के साथ सम्मिलित आईडी प्राप्त करना मैं पीडीओ की मूल बातें के साथ पकड़ने के लिए मिल रहा हूं।पीडीओ MySQL

हालांकि मैं, मैं का उपयोग कर डाला पंक्ति की आईडी प्राप्त करने की कोशिश:

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

ट्यूटोरियल मैं सामने आने वाले लेन-देन के बारे में हैं, हालांकि मैं लेनदेन उपयोग नहीं कर रहा!

उत्तर

33

शायद आप lastInsertId देख रहे हैं। "अंतिम डाली गई पंक्ति या अनुक्रम मान की आईडी लौटाता है"।

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

आह हे धन्यवाद! किसी कारण से मैं इसे $ क्वेरी चर पर कॉल करने की कोशिश कर रहा था। – pondpad

10

लेनदेन का उपयोग करते समय ध्यान दें।

यदि आप commit पर कॉल करने के बाद lastInsertedId पर कॉल करते हैं, तो lastInsertedId आईडी के बजाय 0 लौटाएगा। lastInsertedIdexecute के ठीक बाद कॉल करें, लेकिन commit से पहले।

$this->db->beginTransaction(); 
$this->stmt->execute(); 
$id = $this->db->lastInsertId(); 
$this->db->commit(); 
संबंधित मुद्दे