我想知道lastInsertId()
的工作原理。 Atm,我這樣使用它來獲取插入行的ID,以便我可以在代碼的其他部分使用此ID。例如:lastInsertId()是否獲取由該腳本或整體插入的最後一個ID?
$stmt = $db->prepare('INSERT INTO image_table (image_name, image_size) VALUES (:image_name, :image_size)');
$stmt->execute(array(
'image_name' => $photoName,
'image_size' => $image_size/1024,
));
$lastInsertId = $db->lastInsertId('yourIdColumn');
好吧,我的問題是:
1)這個腳本是否得到lastInsertId
因爲這是在特定的腳本完成的SQL插入?
2)例如,3個不同的用戶將數據插入同一個表中只有幾納秒的差異。事情是這樣的:
this script -> Inserts to row id 1
Another user -> Inserts to row id 2
Another user -> Inserts to row id 3
在這種情況下,將在lastInsertId()
返回值1,因爲它是由該腳本插入或將它返回3,因爲這是最後的ID由該行的最後一個ID時間腳本到達執行lastInsertId()
函數的行嗎?
這是會話特定的。 – Strawberry
對於該腳本/會話;否則這將是相當無用的 –
完美!感謝澄清....我很擔心,因爲如果它提取了整體ID,那麼它可能是一個安全問題,在我的情況。很高興每個腳本/會話。 – Neel