我正在掌握PDO的基础知识。
但是我试图获取插入行的ID,我使用:
$query = $system->db->prepare("INSERT INTO {$this->_table} (name,description) VALUES (:name,:description)");
$query->execute(array('name'=>$name,'description'=>$description));
我遇到的教程是关于交易的,但是我没有使用交易!
答案 0 :(得分:33)
你可能正在寻找lastInsertId。 “返回最后插入的行或序列值的ID。”
$insertedId = $system->db->lastInsertId() ;
答案 1 :(得分:10)
使用交易时要注意。
如果您在致电lastInsertedId
后致电commit
,lastInsertedId
将返回0而不是ID。
在lastInsertedId
之后,execute
之前调用commit
。
$this->db->beginTransaction();
$this->stmt->execute();
$id = $this->db->lastInsertId();
$this->db->commit();