Вы должны использовать вместо LEFT JOIN
. Используйте правильное соединение (используя ON
) и используйте подготовленный оператор, см. Как я могу предотвратить внедрение SQL в PHP? .
LEFT JOIN
с удалением означает, что вы удаляете из основной таблицы, но если в правой таблице есть совпадения (для вас это комментарии), удалите их тоже.
$sql = "DELETE beitrag, kommentar
FROM beitrag
LEFT JOIN kommentar
ON beitrag.beitrag_id= kommentar.beitrag_id
WHERE beitrag.beitrag_id = $pid";
Хотя вы можете установить отношение внешнего ключа для комментариев, чтобы при удалении статьи комментарии также удалялись (используя атрибут ON DELETE CASCADE
). Таким образом, вы просто удаляете статью, и комментарии следующие.
ALTER TABLE kommentar
ADD FOREIGN KEY (beitrag_id) REFERENCES beitrag(beitrag_id)
ON DELETE CASCADE;
Затем удалите статью с простым запросом удаления
$sql = "DELETE FROM beitrag WHERE beitrag_id = $pid";