2013-09-26 36 views
-2

如何使用MYSQL將此INSERT語句轉換爲UPDATE語句?表filmInfo參考表actorsInfo與外鍵id_actoractorsInfo.id將INSERT語句轉換爲帶有多個表的UPDATE

可能是一個更好的方法來做到這一點,但這是我現在所擁有的。

$sql="INSERT INTO filmInfo (filmTitle, filmRole, filmDirector, id_actor) 
VALUES 
('$_POST[filmTitle]','$_POST[filmRole]','$_POST[filmDirector]', 
(select id FROM actorsInfo WHERE email = '$_SESSION[email]'))"; 

這是我的查詢工作。

$query="SELECT filmTitle, filmRole, filmDirector, idfilm FROM filmInfo, actorsInfo 
WHERE (actorsInfo.id = filmInfo.id_actor) AND email = '$_SESSION[email]'"; 

我試過,但UPDATE不起作用:

$sql= "Update filmInfo join actorsInfo 
ON actorsInfo.id = filmInfo.id_actor 
Set 
filmTitle = '$filmTitle', 
filmRole = '$filmRole', 
filmDirecto = '$filmDirector' 
WHERE (actorsInfo.id = afillInfo.id_actor) AND email = '$_SESSION[email]'"; 

請幫幫忙!

+2

爲什麼你使用where actorsInfo.id = afillInfo.id_actor如果你已經加入了 –

+0

我不相信「不行」是標準的MySQL或PHP錯誤消息。這當然不是什麼問題的好描述。我是否理解執行查詢會導致咖啡壺開始唱ABC歌? –

+1

什麼是'afillInfo'?查詢中沒有提到這樣的表格。您不需要在'WHERE'子句中重複'ON'條件。 – Barmar

回答

1

這應做到:

$sql= "Update filmInfo join actorsInfo 
ON actorsInfo.id = filmInfo.id_actor 
Set 
filmTitle = '$filmTitle', 
filmRole = '$filmRole', 
filmDirecto = '$filmDirector' 
WHERE email = '$_SESSION[email]'"; 

你在WHERE引用afillInfo.id_actor,但在thequery提到沒有這樣的表。所有加入條件應在ON條款中。

+0

感謝這工作。 – user2714558

相關問題