【发布时间】:2015-11-11 19:25:58
【问题描述】:
如果有人能帮我解决这个问题,我会很高兴。我有一个音乐数据库。有 3 个表:
album (id, album_name)
album_has_song (album_id, song_id)
song (id, song_name)
我在专辑中插入了一首歌(填写了所有 3 个表格),但现在我想找到一种简单的方法来删除某个专辑时的所有内容。
$query1 = mysql_query("DELETE FROM album_has_song WHERE album_id=$albumID");
$query2 = mysql_query("DELETE FROM album WHERE id=$albumID");
$query3 = mysql_query("DELETE FROM song JOIN album_has_song ON song.id=song_id WHERE album_id=$albumID AND SELECT EXISTS(SELECT * FROM song JOIN album_has_song ON song.id=song_id WHERE album_id=$albumID)");
$query1 和 $query2 没有任何问题。现在$query3.. 我想检查专辑是否有任何歌曲,然后删除该专辑中的所有歌曲。
【问题讨论】:
-
如果可以的话,你应该stop using
mysql_*functions。 These extensions 已在 PHP 7 中删除。了解PDO 和 MySQLi 的 prepared 语句并考虑使用 PDO,it's really not hard。 -
请don't use
mysql_*;mysql_*函数已过时、deprecated 且不安全。请改用MySQLi或PDO。 -
你应该使用存储过程,因为这个过程需要一点逻辑,除非你想把逻辑放在 PHP 中。
-
谢谢你们的提示。