2012-10-02 146 views
0

可能重複:
How to get the id of a row i've just inserted php/mysql在MySQL + PHP中插入SELECT?

我想知道有什麼東西插入並選擇它的ID屬性在同一時間的最有效的方法是什麼?

例如,我有一個自動遞增主ID列的表。我向該表格中插入一個項目,並且我需要知道用於另一個表格的自動增量ID。

現在,我要做的就是:

  1. INSERT INTO表1中的數據
  2. 選擇從表1的ID
  3. INSERT INTO表2與ID一起另一組數據。
+0

我知道所有DB庫(你給不使用的是其中的一個線索)可以獲取從INSERT語句自動遞增的ID。絕對不需要做一個SELECT。 –

+0

我正在使用在GitHub上找到的MySQL類。我相信這是一個。 https://github.com/roncli/PHP-MySQL-Class – Propeller

+0

你需要閱讀PHP和MySQL手冊,有許多關於自動遞增ID的**例子。 – Jocelyn

回答

6

你可以做到這一點

INSERT INTO foo (auto,text) 
    VALUES(NULL,'text');   --generate ID by inserting NULL 
INSERT INTO foo2 (id,text) 
    VALUES(LAST_INSERT_ID(),'text'); --use ID in second table 

源:http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

+0

如果我的查詢設置如下,這項工作是否可行? 'INSERT INTO foo(secondcolumn,thirdcolumn)VALUES('value1','value2')'?請注意我如何省略自動遞增ID列。 – Propeller

+0

LAST_INSERT_ID()(不帶參數)返回一個BIGINT(64位)值,表示由最近執行的INSERT語句爲AUTO_INCREMENT列設置的第一個自動生成的值,以影響此列。 – edwardmp