檢索自動遞增值。這適用於單個插入。它的
$result = $mysqli->query($query);
$NewPrimaryKey = $mysqli->insert_id;
一個簡單的例子。然而,我已經學會(從這個網站居然)有多個刀片更好的擴展插入完成:
insert into table (name1,name2,name3) values
('blah1','blah2',blah3'),
('blah1','blah2',blah3'),
('blah1','blah2',blah3'))
這也偉大工程 - 除非我想知道哪些密鑰是自動分配的。
PHP手冊說:
當運行在桌子上擴展的插入用AUTO_INCREMENT字段, mysqli_insert_id()的值將等於插入第一 行的值。
我的測試似乎證實了這一點。
注:我不想只是第一或剛剛過去的。
我不希望有恢復到幾千單刀片只是讓我可以以個人爲基礎的auto_allocated關鍵。
有誰知道的方式做擴展插件和找回所有被分配(大概在陣列)的鑰匙?
它沒有想到我剛讀和做擴展寫之前保留現有最新的鍵,然後計算分配密鑰的預期值,但是這似乎有點bodgified。
你有沒有考慮一個ORM? – 2013-03-08 15:14:42
你確定你需要做批量插入嗎?如果這是一個場景,需要在應用程序中注滿所有ID,則使用批量插入的性能優勢可能可以忽略不計(因爲我假設您需要這些來爲每個要插入的項目發出後續查詢相關數據)? – 2013-03-08 15:18:18
我沒有聽說過ORM。我有一個快速的看,但它似乎是一個新的學習技能。我真的不想爲這個單一問題做這件事,但謝謝。 – 2013-03-08 15:22:02