使用插入PDO MySQL获取插入ID

pon*_*pad 18 php sql pdo

我开始掌握PDO的基础知识.

但是,我试图获取插入行的ID,我使用:

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

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

Fan*_*nis 33

你可能正在寻找lastInsertId."返回最后插入的行或序列值的ID".

$insertedId = $system->db->lastInsertId() ;
Run Code Online (Sandbox Code Playgroud)

  • 啊哈谢谢!出于某种原因,我试图在$ query变量上调用它. (2认同)

小智 10

使用交易时要注意.

如果您在通话lastInsertedId后打电话commit,lastInsertedId将返回0而不是ID.lastInsertedId之后execute,但之前打电话commit.

$this->db->beginTransaction();
$this->stmt->execute();
$id = $this->db->lastInsertId();
$this->db->commit();
Run Code Online (Sandbox Code Playgroud)