使用 PDO 从最后插入的行中获取特定列

我有一个 MySQL 表users,带有自动增量userid列。在我INSERT使用 PDO 新建一个用户行之后,有没有办法获取它的用户标识?

我知道,PDO::lastInsertId但我不确定这是否给出了正确的值。根据文档,它给出了“行的 ID”。

更一般地说,我可以在不创建新查询的情况下从最后插入的行中获取特定列吗?


翻过高山走不出你
浏览 86回答 1
1回答

慕尼黑8549860

我有一个 MySQL 表 users,带有自动递增的 userid 列。在我使用 PDO 插入一个新的用户行之后,有没有办法获取它的用户标识?这正是它的lastInsertId作用:它为您提供最后一次插入的自动递增列的值。但是请注意,如果您的查询一次插入多行,最后插入的行的 ID将被返回。更一般地说,我可以在不创建新查询的情况下从最后插入的行中获取特定列吗?不。某些数据库支持该returning子句,它允许insert查询从插入的行返回列,但 MySQL 不支持。因此,您确实需要select在 之后运行查询insert,使用最后一个插入 ID 作为过滤器。有人可能会争辩说,如果您只是执行一个insert,您应该知道插入了哪些值(或者您可以推断出您未提供其值的列的默认值)。
打开App,查看更多内容
随时随地看视频慕课网APP