我有一個(gè) MySQL 表users,帶有自動(dòng)增量userid列。在我INSERT使用 PDO 新建一個(gè)用戶行之后,有沒有辦法獲取它的用戶標(biāo)識(shí)?我知道,PDO::lastInsertId但我不確定這是否給出了正確的值。根據(jù)文檔,它給出了“行的 ID”。更一般地說,我可以在不創(chuàng)建新查詢的情況下從最后插入的行中獲取特定列嗎?
1 回答

慕尼黑8549860
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
我有一個(gè) MySQL 表 users,帶有自動(dòng)遞增的 userid 列。在我使用 PDO 插入一個(gè)新的用戶行之后,有沒有辦法獲取它的用戶標(biāo)識(shí)?
這正是它的lastInsertId
作用:它為您提供最后一次插入的自動(dòng)遞增列的值。但是請(qǐng)注意,如果您的查詢一次插入多行,最后插入的行的 ID將被返回。更一般地說,我可以在不創(chuàng)建新查詢的情況下從最后插入的行中獲取特定列嗎?
不。某些數(shù)據(jù)庫(kù)支持該returning
子句,它允許insert
查詢從插入的行返回列,但 MySQL 不支持。因此,您確實(shí)需要select
在 之后運(yùn)行查詢insert
,使用最后一個(gè)插入 ID 作為過濾器。有人可能會(huì)爭(zhēng)辯說,如果您只是執(zhí)行一個(gè)insert
,您應(yīng)該知道插入了哪些值(或者您可以推斷出您未提供其值的列的默認(rèn)值)。
- 1 回答
- 0 關(guān)注
- 116 瀏覽
添加回答
舉報(bào)
0/150
提交
取消