2013-03-28 28 views
-1

我用PHP編寫一個簡單的觸發器,這裏是我的代碼PHP SQL觸發

$triggerQuery = 
"DELIMITER && 
create or replace Trigger insert_room_type after insert on hotel for each row 
begin 
insert into room_type values(NEW.hotelID,'Single',0,NULL); 
insert into room_type values(NEW.hotelID,'Double',0,NULL); 
insert into room_type values(NEW.hotelID,'Standard',0,NULL); 
insert into room_type values(NEW.hotelID,'Superior',0,NULL); 
end && DELIMITER ;"; 

然而,代碼運行時,只有第一個插入(滿分4)爲執行,誰能告訴我是什麼做錯了? Thx提前。

順便說一句,room_type的主鍵是hotelID & RoomCategory(這是第二列),所以不會有任何主鍵違規嗎?

+1

你不需要每次都創建一個觸發器。它只能創建一次。 – Oyeme

回答

0

從未聽說過使用PHP創建觸發器。而且它們只創建一次!

要解決您的錯誤,您必須更改分隔符。否則MySQL認爲觸發器已經完成了第一個;

DELIMITER $$ 
create Trigger insert_room_type after insert on hotel for each row 
begin 
insert into room_type values(NEW.hotelID,'Single',0,NULL); 
insert into room_type values(NEW.hotelID,'Double',0,NULL); 
insert into room_type values(NEW.hotelID,'Standard',0,NULL); 
insert into room_type values(NEW.hotelID,'Superior',0,NULL); 
end $$ 
DELIMITER ; 
+0

Thx男人,我添加了分隔符,但仍然是相同的結果,是因爲mysql_query不起作用,這是我如何執行它 $ trigger = mysql_query($ triggerQuery,$ con); –

+0

我對PHP沒有任何線索,但是我知道只有一條語句等限制。請直接執行我在數據庫上直接發佈的內容。真的,在這裏使用PHP也沒有意義。 – fancyPants

+0

如果仍有錯誤,請發佈確切的錯誤消息。 – fancyPants