在PDO中显示数据库的最后一个ID

时间:2017-09-28 08:42:39

标签: php mysql pdo

我正在尝试获取数据库的最后一个ID号。但它只显示0。 我正在学习PDO。谁能告诉我怎么办呢?

if($_SERVER['REQUEST_METHOD']=='POST'){
  $sql = "SELECT * FROM tablename";
  $stmt = $pdo->prepare($sql);
  $stmt->execute();
  $row = $stmt ->fetch();
  $showid = $pdo->lastInsertId();
  echo $showid;
}

2 个答案:

答案 0 :(得分:4)

lastInsertId将返回由同一连接插入的行的ID。你不能在那种情况之外使用它。

获取最后一个ID的最简单方法是运行类似

的内容
SELECT max(id) FROM tablename

如果您正在使用此功能以确定接下来应插入哪个ID,请考虑使用自动增量列作为您的ID。

答案 1 :(得分:0)

lastInsertId()仅在INSERT查询后才有效 - 因为您只执行选择,它将始终返回字符串(1)= 0

因此,要么在INSERT语句后执行此代码,要么执行以下操作:

$stmt = $db->query("SELECT LAST_INSERT_ID()");
$lastId = $stmt->fetchColumn();

请参阅:PDO get the last ID inserted

访问此主题,您将找到Corbin提供的示例代码以及有关此主题的更多信息。