1

我一直在研究这种电影商店应用程序,我需要以 VHS 和 DVD 副本的形式录制新电影条目,例如我有 5 个新的 DVD 副本和 3 个新的 VHS 副本,比如说蝙蝠侠电影。我需要将副本记录在 Films Table 和 Copies Table 中,以便稍后我可以搜索我的商店中有多少 Batman 电影的副本(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 副本的第二个查询时,查询会获取 Copies 表的 last_insert_id() 而不是 Films 表。

4

3 回答 3

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 回答
0

在查询之间,使用mysql_insert_id()在脚本中保存 id

于 2012-10-02T19:28:01.267 回答
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 回答