2011-11-22 50 views
0

可能重复:
PHP: how to get last inserted ID of a table?从MySQL INSERT获取ID

我有我的MySQL插入一个问题。我有一个ID列,它是AUTO_INCREMENT我运行此代码到表:

mysql_query("INSERT INTO tickets (Submitted, UNIXtime, Subject, Text, User, Priority, Status, Service) VALUES ('$date', '$UNIXtime', '$subject', '$text', '$userss', '$priority', '$status', '$service')"); 

它然后插入该行的ID号。我如何获得该ID号码,以便我可以将其回显出来,例如$id = (The ID number from that submit); echo $id;

感谢您的帮助。如果可以的话,你可以重写代码以使其工作并发布,以便我知道该怎么办?

+0

同意了 - 看起来重复 –

+0

@AdrianCornish我只是希望有人也有助于重写我的代码在上下文中 –

+0

@Darayus - 不够公平 - 但也许再你应该说出你的问题“我如何重写我的最后一个插入ID *”我正在学习stackoverflow现在只是为了回答一个问题,但提供了“相同”问题的历史答案 –

回答

4

您正在寻找mysql_insert_id()。该函数将返回最后一个查询的ID。

你可以运行你的查询后调用它:

mysql_query($insert_query); 
echo "Last ID is " . mysql_insert_id(); 
+0

我如何将它与我的代码联系起来? –

+0

取代'(从该提交的ID号码)' – SinistraD

0
+0

哇..这就是为什么我永远不会在这个网站上发布答案了。在我输入我的答案的时候,同样的事情已经发布了2个其他答案...... – Tim

+4

Tim,请花点时间回答问题。即使有人在你面前发表,并不意味着答案更好,甚至更正确。 – halfdan

+0

尝试回答困难的问题,没有人会打扰你:) – SinistraD

2

您可以使用mysql_insert_id来从表中的最后一个ID。注意:您必须在插入后立即致电mysql_insert_id,因为它仅适用于上次执行的查询。

$id = mysql_insert_id(); 
+0

我明白你的意思。有没有办法阻止,因为我期待非常高的插入率。 –

+0

我将不得不改写它,因为它不完全正确。 – halfdan

+0

您也不必担心并发请求,按预期工作,用户将从他自己的插入中看到最后一个ID,忽略并行制作的其他插入 – SinistraD