使用插入 PDO MySQL 获取插入 ID

2022-08-30 21:50:26

我正在掌握PDO的基础知识。

但是,我正在尝试获取插入行的ID,我使用:

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

我遇到的教程是关于交易的,但是我没有使用交易!


答案 1

您可能正在寻找lastInsertId。“返回上次插入的行或序列值的 ID”。

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

答案 2

使用事务时要注意。

如果在呼叫 后呼叫 ,将返回 0 而不是 id。在 之后,但在 之前调用 。lastInsertedIdcommitlastInsertedIdlastInsertedIdexecutecommit

$this->db->beginTransaction();
$this->stmt->execute();
$id = $this->db->lastInsertId();
$this->db->commit();

推荐