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

问题描述 投票:0回答:1

我有一个MySQL表 users,自动递增 userid 栏目。在我 INSERT 在PDO中新建了一个用户行,有什么方法可以得到它的用户ID?

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

更一般来说,我可以从最后插入的记录中获取一个特定的列,而不需要创建一个新的查询?

php mysql database pdo
1个回答
3
投票

我有一个MySQL表user,有一个自动增加的userid列。当我用PDO插入一条新的用户记录后,有什么方法可以得到它的userid?

这正是 lastInsertId 的作用:它给了你最后一次插入的自动增加列的值。但是,请注意,如果你的查询一次插入了多条记录,那么列的id将是 最后插入的行 是返回。这将被描述为 在文件中.

一般来说,我可以从最后插入的记录中获取一个特定的列,而不需要创建一个新的查询吗?

不能。有些数据库支持 returning 子句,让一个 insert 查询会返回插入的行的列,但不会返回MySQL。所以你确实需要运行一个 select 后的查询 insert,使用最后插入的id作为过滤器。也许有人会说,如果你只是执行了一次 insert你应该知道哪些值被插入了(或者你可以推断出你没有提供值的列的默认值)。

© www.soinside.com 2019 - 2024. All rights reserved.