在 PDO 中显示数据库的最后一个 ID [重复]
Posted
技术标签:
【中文标题】在 PDO 中显示数据库的最后一个 ID [重复]【英文标题】:Show last id of database in PDO [duplicate] 【发布时间】:2018-03-09 22:30:07 【问题描述】:我正在尝试获取数据库的最后一个 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;
【问题讨论】:
您的lastInsertId()
中有什么内容?
这里没有插入任何东西,所以insert id不可用。
@MammaMia:“它只显示 0”
lastInsertId()
引用手册,返回最后插入行的ID;您的查询是 SELECT 查询,而不是 INSERT。你可能想要SELECT table.id FROM table ORDER BY table.id DESC LIMIT 1
我最后一个 insertid 应该是 2
【参考方案1】:
lastInsertId
将返回由同一连接插入的行的 ID。您不能在该上下文之外使用它。
获取最后一个 ID 的最简单方法是运行类似,
SELECT max(id) FROM tablename
如果您使用它来确定接下来应该插入哪个 ID,请考虑为您的 ID 使用自动增量列。
【讨论】:
【参考方案2】:lastInsertId()
仅在 INSERT
查询之后有效 - 因为您只是在进行选择,所以它总是会返回 string(1) = 0
因此,您可以在 INSERT
语句之后执行此代码,也可以执行以下操作:
$stmt = $db->query("SELECT LAST_INSERT_ID()");
$lastId = $stmt->fetchColumn();
参考这里:PDO get the last ID inserted
访问此线程,您将找到 Corbin 提供的我的示例代码以及有关此主题的更多信息。
【讨论】:
我试过你的链接,然后它只显示 0 但这应该显示 2。任何线索?以上是关于在 PDO 中显示数据库的最后一个 ID [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 PHP-PDO 记录查询时获取最后一个插入 ID