将一个表的ID多次使用到另一个表中

时间:2012-10-02 19:16:33

标签: php sql

我正在研究这种电影商店应用程序,其中我需要以VHS和DVD副本的形式录制新的电影条目,例如我有5个新的DVD副本和3个新的VHS副本让我们说蝙蝠侠这部电影。我需要在胶片表和副本表中记录副本,以便稍后我可以在我的商店中搜索我有多少份蝙蝠侠电影的副本(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表。

3 个答案:

答案 0 :(得分:0)

尝试在php变量中保存以前的id。

$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);

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这是因为last_insert_id()从最后一个insert语句中获取id。当您执行第一次插入时,它会导致last_insert_id()的值发生更改: 有关如何使用last_insert_id()的详细信息,请参阅http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id。从数据库中检索值并将其保存在本地,或将其存储在sql变量

中可能会有所帮助