PHPを介して実行している間は、トリガーから区切り文字を削除する必要があります。mysql_またはmysqli_関数は、区切り文字なしでトリガーを実行できる必要があります。
方法は次のとおりです。
$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
");