我有一個 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 關注
- 120 瀏覽
添加回答
舉報
0/150
提交
取消