我有一个MySQL表 users
,自动递增 userid
栏目。在我 INSERT
在PDO中新建了一个用户行,有什么方法可以得到它的用户ID?
我知道 PDO::lastInsertId
但我不确定这是否给出了正确的值。根据 文件它给出了 "行的ID"。
更一般来说,我可以从最后插入的记录中获取一个特定的列,而不需要创建一个新的查询?
我有一个MySQL表user,有一个自动增加的userid列。当我用PDO插入一条新的用户记录后,有什么方法可以得到它的userid?
这正是 lastInsertId
的作用:它给了你最后一次插入的自动增加列的值。但是,请注意,如果你的查询一次插入了多条记录,那么列的id将是 最后插入的行 是返回。这将被描述为 在文件中.
一般来说,我可以从最后插入的记录中获取一个特定的列,而不需要创建一个新的查询吗?
不能。有些数据库支持 returning
子句,让一个 insert
查询会返回插入的行的列,但不会返回MySQL。所以你确实需要运行一个 select
后的查询 insert
,使用最后插入的id作为过滤器。也许有人会说,如果你只是执行了一次 insert
你应该知道哪些值被插入了(或者你可以推断出你没有提供值的列的默认值)。