我有一个 MySQL 表users,带有自动增量userid列。在我INSERT使用 PDO 新建一个用户行之后,有没有办法获取它的用户标识?我知道,PDO::lastInsertId但我不确定这是否给出了正确的值。根据文档,它给出了“行的 ID”。更一般地说,我可以在不创建新查询的情况下从最后插入的行中获取特定列吗?
1 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
我有一个 MySQL 表 users,带有自动递增的 userid 列。在我使用 PDO 插入一个新的用户行之后,有没有办法获取它的用户标识?
这正是它的lastInsertId
作用:它为您提供最后一次插入的自动递增列的值。但是请注意,如果您的查询一次插入多行,最后插入的行的 ID将被返回。更一般地说,我可以在不创建新查询的情况下从最后插入的行中获取特定列吗?
不。某些数据库支持该returning
子句,它允许insert
查询从插入的行返回列,但 MySQL 不支持。因此,您确实需要select
在 之后运行查询insert
,使用最后一个插入 ID 作为过滤器。有人可能会争辩说,如果您只是执行一个insert
,您应该知道插入了哪些值(或者您可以推断出您未提供其值的列的默认值)。
- 1 回答
- 0 关注
- 85 浏览
添加回答
举报
0/150
提交
取消