SQL从刚刚插入的行中获取ID

时间:2014-07-02 19:36:32

标签: php mysql sql

如何获取刚刚插入的行的ID?我正在使用PDO语句,我可以在表格中插入名称和电子邮件。

$dbh = new PDO();
$dbh->prepare ("INSERT INTO `table` (`name`, `email`) VALUES (:name, :email);");
// execute
$dbh->execute(array(':name' => 'John Doe', ':email' => 'johndoe@gmail.com'));

该表还有一个自动增量id列。

如何获取刚刚创建的行的ID?我已经阅读了lastInsertId(),但如果两个客户同时插入一行,有时会给出错误的值吗?

2 个答案:

答案 0 :(得分:1)

lastInsertId()返回此数据库连接的最后插入ID。在其他页面中将是另一个连接和另一个最后插入的id。

答案 1 :(得分:-1)

除了@Issam Zoli this可能就是您所需要的。似乎有一些警告。

查看NaturalBornCamper's Answer

以下是如何从上面的链接中使用它的示例。

$db = new PDO('mysql:dbname=database;host=localhost', 'user', 'pass');
$statement = $this->db->prepare('INSERT INTO people(name, city) VALUES(:name, :city)');
$statement->execute( array(':name' => 'Bob', ':city' => 'Montreal') );

echo $db->lastInsertId();