我正在研究这种电影商店应用程序,其中我需要以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表。
答案 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变量
中可能会有所帮助