我想在我的MySQL數據庫中創建一個多對多的關係。我有三個表格: Films
,Genres
和Films_Genres
。我使用下面的代碼來設置它們:MySQL與FOREIGN KEYS的多對多關係
CREATE TABLE Films
(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
Title VARCHAR(255)
),
CREATE TABLE Genres
(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
Name VARCHAR(255)
),
CREATE TABLE Films_Genres
(
film_id INT NOT NULL,
genre_id INT NOT NULL,
PRIMARY KEY (film_id, genre_id),
FOREIGN KEY (film_id) REFERENCES Films(id) ON UPDATE CASCADE,
FOREIGN KEY (genre_id) REFERENCES Genres(id) ON UPDATE CASCADE
)
然而,當我嘗試插入一些值表用:
INSERT INTO Films (Title) VALUES ('$title')
INSERT INTO Genres (Name) VALUES ('$genre')
我可以看到新的電影在Films
表和新表在Genres
表中,但 Films_Genres
表不更新 - 沒有新行(我正在通過phpMyAdmin檢查)。
我在做什麼錯?
粘貼PHP代碼,或者我們無能爲力。你有沒有驗證'$ title'和'$ genre'存在?等.. –
我可以顯示電影和流派的結果 - 他們的工作。唯一的問題是Films_Genres表不添加任何行。 PHP似乎很好。我使用mysqli_query($ con,$ sql)來執行SQL代碼。 SQL是否正確? – Sharkz
因此,我假設在'Films_Genres'丟失的連接是你關心的問題。如果是這種情況,您需要自己將這兩條記錄關聯起來。 –