2012-10-02 50 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