2012-03-03 71 views
1

這兩個PHP MySQL查詢的工作。爲什麼將我的SQL查詢合併爲一個不起作用?

mysql_query("DELETE FROM videos WHERE id='10';"); 
mysql_query("DELETE FROM comments WHERE videoId='10';"); 

由於與後面的DELETE操作相關的MySQL語法錯誤,此單個查詢失敗。

mysql_query("DELETE FROM videos WHERE id='10';DELETE FROM comments WHERE videoId='10';"); 

我盯着看,看不到語法錯誤。它是什麼?

+0

你確定你可以在一個查詢中有多個命令嗎? – Randy 2012-03-03 18:35:44

+0

類似於其他問題,但這一個更簡潔 – Randy 2012-03-03 18:38:37

回答

1

您無法使用mysql_query執行多個查詢。如果你真的想要(安全風險!),請使用mysql_multi_query。 (你應該使用更新的mysqli_*函數)。在交易中嵌入這兩個調用是個好主意。

但是,這看起來很像你真的想要定義foreign key constraints。如果您已經使用InnoDB,我強烈建議他們。

+0

謝謝!爲什麼一次運行多個查詢會帶來安全風險?事實上,我試圖執行外鍵約束。 – dangerChihuahua007 2012-03-03 18:56:14

+1

安全風險,如果您在查詢中使用用戶提供的數據並且無法轉義單個值(sql注入)。這在準備好的語句中不會發生,但我認爲預準備語句不允許使用單個命令進行多個查詢。 – knittl 2012-03-03 18:57:51