所以我在我的数据库中有这3个表:
ACTORS :
->name -varchar -primary key
->yob -int -primary key
->uploader -varchar
MOVIES :
->title -varchar -primary key
->yor -int -primary key
->uploader -varchar
MOVIE_ACTORS(my intersection table for those 2) :
->movie_title -varchar -foreign key
->movie_yor -int -foreign key
->actor_name -varchar -foreign key
->actor_yob -int -foreign key
我在php中有两种不同形式的插入类型:
1)通过这个我在我的数据库中介绍整部电影,其中有一些演员在其中演出。
$sql = "INSERT INTO movies (TITLE, YOR, UPLOADER)
VALUES ('".$title."', '".$release_date."', '".$uploader."')";
mysqli_query($connection,$sql);
for($i = 1; $i <= $actors_nr; $i++)
{
$sql = "INSERT INTO actors (NAME) VALUES ('".$actor[$i]."')";
mysqli_query($connection,$sql);
}
2)通过这个我在数据库中介绍一个演员(如果它不存在,随着电影介绍,我介绍它;如果它是用电影创建的,我只需使用新数据更新数据库):
if($rowcount < 1)
{
$sql = "INSERT INTO actors (NAME, YOB, UPLOADER)
VALUES ('".$name."', '".$birth_year."', '".$uploader."');
mysqli_query($connection,$sql);
}
else
{
$sql = "UPDATE actors SET YOB='$birth_year', UPLOADER='$uploader'WHERE NAME='$name'";
mysqli_query($connection,$sql);
}
?>
如何在每种情况下在交集表中引入数据?
答案 0 :(得分:0)
我没有做一段时间的PHP所以我给你伪代码,一部电影有很多演员,所以你必须为电影中的每个演员插入一行,但电影的信息在每一行都是相同的:< / p>
$actors = $movie->actors;
$sql = "INSERT INTO MOVIE_ACTORS (movie_title, movie_yor, actor_name,actor_yob)
VALUES"
foreach($actor in $actors)
{
$sql += "($movie->title,$movie->yor,$actor->name,$actor->yob),"
}
// do an insert with this sql