Sie sollten das Trennzeichen aus dem Trigger entfernen, während Sie es über PHP ausführen. mysql_- oder mysqli_-Funktionen sollten in der Lage sein, den Trigger ohne das Trennzeichen auszuführen.
So geht's.
$this->db->query("
CREATE TRIGGER `delete_post` BEFORE DELETE ON `posts`\r\n
FOR EACH ROW BEGIN\r\n
DELETE FROM page_content WHERE page_content.post_id = OLD.post_id;\r\n
END\r\n
//\r\n
");