我正在尝试获取数据库的最后一个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;
}
答案 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提供的示例代码以及有关此主题的更多信息。