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的值,如何获取foo_id的值。我是否还需要对这些ID进行硬编码。有优雅的方式吗?
答案 0 :(得分:1)
是的,有一种优雅的方法可以确定最后插入的ID。检查this for MySQL和this for MySQLi
从他们的例子中可以看出:
$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);
printf ("New Record has id %d.\n", $mysqli->insert_id);
答案 1 :(得分: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