如何获取刚刚插入的行的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()
,但如果两个客户同时插入一行,有时会给出错误的值吗?
答案 0 :(得分:1)
lastInsertId()
返回此数据库连接的最后插入ID。在其他页面中将是另一个连接和另一个最后插入的id。
答案 1 :(得分:-1)
除了@Issam Zoli this可能就是您所需要的。似乎有一些警告。
以下是如何从上面的链接中使用它的示例。
$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();