【问题标题】:Get the last auto increment id获取最后一个自动增量 id
【发布时间】:2013-09-02 21:28:06
【问题描述】:

假设我的代码是:

$req = $bdd->prepare('INSERT INTO test(name, surname) VALUES(:name, :surname)');
$req->execute(array(
    'name' => $name,
    'surname' => $surname));

我的表 test 有一个名为 id 的自动递增字段

获取与$req 对应的“id”的最佳方法是什么?

【问题讨论】:

  • 您使用的是 MYSQLI 还是 PDO?我猜是 PDO,但我想确定一下。
  • 是的,我正在使用 PDO @MisterMelancholy
  • 使用 PDO 的 lastInsertId php.net/manual/en/pdo.lastinsertid.php
  • @Arthur 用您不知道的语言编辑代码时请小心! ->=> 是 PHP 中的原子运算符。您一直在尝试在您一直建议的编辑中添加的空白会破坏代码......但它们几乎一直得到梦游评论者的批准。另外,请查找实际上有需要修复的内容的帖子。即使没有破坏代码,这些类型的编辑也确实无济于事。

标签: php sql pdo auto-increment


【解决方案1】:

PDO 对此有一个方法:

$id = $pdo->lastInsertId();

或者在你的情况下:

$id = $bdd->lastInsertId();

您可以找到有关 lastInsertID 方法here 的更多信息。

【讨论】:

  • 所以我想知道,如果多个数据库事务同时发生(不同计算机上的多个用户)会发生什么,lastInsertId() 函数是否有可能返回错误的 id? ?
  • @James111 我不完全确定你在问什么。 $pdo->lastInsertId() 将返回对象 $pdo 的最新插入 ID。
猜你喜欢
  • 2012-10-22
  • 1970-01-01
  • 2012-12-19
  • 2016-03-11
  • 1970-01-01
  • 2013-07-11
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
相关资源
最近更新 更多