簡體   English   中英

MySQL插入並選擇插入的ID

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM