[英]Mysql insert and select id of inserted
我在具有auto_increment id值的mysql表中插入1行,並希望獲取該行的id。 你知道一些建築嗎
{
INSERT INTO some_table (`name`) VALUES ('test name')
ON SUCCESS RETURN id
}
表結構:
id: int not null auto_increment Primary key
name: Varchar (20)
我讀到有關LAST_INSERT_ID的信息,但是如果同時調用我的腳本,則會有2個不同插入的變化,並且LAST_INSERT_ID可能返回錯誤的值。
我正在使用php和准備好的語句,不允許多次提交和/或回滾。
感謝您的想法。
您對PHP PDO的多用戶使用有錯誤的假設。 最后的插入ID存儲在連接時創建的PDO對象中。 因此,此“最后插入ID”值按每個連接存儲。 這樣,同時通話不會互相干擾。
這是手冊參考 。
首先做插入
INSERT INTO some_table (`name`) VALUES ('test name');
然后做完之后
SELECT id FROM some_table WHERE name = 'test name';
並確保您捕獲了后一個的輸出(這可能會有所不同,具體取決於您連接到數據庫的方式)。
編輯:或者,您可以在插入后立即執行此操作:
SELECT id FROM some_table WHERE name = 'test name' ORDER BY id DESC LIMIT 1
這樣,您可以避免獲取具有相同名稱的早期輸入。
嘗試這個
$sql = "INSERT INTO some_table (`name`) VALUES ('test name')";
$result = mysql_query($sql);
$last_id = mysql_insert_id();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.