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

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 に答える
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 に答える