1

私はこの種の映画ストア アプリケーションに取り組んでおり、VHS と DVD コピーの形式で新しい映画エントリを記録する必要があります。たとえば、5 つの新しい DVD コピーと 3 つの新しい VHS コピーがあるとしましょう。 Films Table と Copies Table にコピーを記録して、後でストアにあるバットマン映画のコピー (VHS と DVD) の数を検索できるようにします。達成するための正しいコードを引き出すのに苦労しています。与えられたタスク。

$sql2="INSERT INTO copies (film_id,format,film_c) VALUES (last_insert_id(),'VHS','$vhs')"; mysql_query($sql2);
$sql3="INSERT INTO copies (film_id,format,film_c) VALUES (last_insert_id(),'DVD','$dvd')"; mysql_query($sql3);

これは私が最初に書いたものですが、VHS 部分では問題なく動作しましたが、DVD コピーの 2 番目のクエリになると、クエリは Films テーブルではなく Copies テーブルの last_insert_id() を取得します。

4

3 に答える 3

0

これは、last_insert_id()が最後の挿入ステートメントからIDを取得するためです。最初の挿入を行ったときに、last_insert_id()の値が変更されました。詳細については、http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-idを参照てください。 last_insert_id()の使用方法について。データベースから値を取得してローカルに保存するか、SQL変数に保存すると役立つ場合があります

于 2012-10-02T19:29:40.813 に答える
0

クエリ間で、mysql_insert_id()を使用してスクリプトで ID を保持します。

于 2012-10-02T19:28:01.267 に答える
0

以前の ID を php 変数に保存してみてください。

$id = mysql_insert_id();
$sql2="INSERT INTO copies (film_id,format,film_c) VALUES ($id,'VHS','$vhs')"; mysql_query($sql2);
$sql3="INSERT INTO copies (film_id,format,film_c) VALUES ($id,'DVD','$dvd')"; mysql_query($sql3);
于 2012-10-02T19:27:33.060 に答える