0
create table foo(id, val1)
create table foo_bars(id, foo_id, val2)

id 在上述情况下是自动生成的。

我想做以下

insert into foo (val1) values (1)
insert into foo_bars (foo_id, val2) values (?, 2)

如果我不知道 foo_id 的值,我该如何获取它。我是否还需要对这些 id 进行硬编码。有没有优雅的方法?

4

2 回答 2

1

是的,有一种优雅的方法可以确定最后插入的 id。

检查这个 MySQL这个 MySQLi

从他们的例子中:

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);
于 2012-11-08T07:58:42.530 回答
1

根据mysql网站(http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

试试这个(如果你想使用纯 MySQL):

INSERT INTO foo (val1) 
    VALUES(1);         
INSERT INTO foo_bars (foo_id, val2)
    VALUES(LAST_INSERT_ID(),2);  # use ID in second table
于 2012-11-08T08:06:20.033 回答