покажите скрипт, echo выполняется до замены и если текст выводится 1 раз до <h1>, то скорее всего ваш скрипт не работает а просто делает echo и стирает {content}, вообще ванговать сложновато)
А зачем вам not null если вы хотите при удалении категории оставлять новости? Вы уж определитесь могут ли у вас быть новости без категорий или не могут и уже исходя из этого выбирайте "not null и on delete cascade" или "null и on delete set null".
Первый аргумент должен быть не строкой а объектом класса string, как и второй.
В php можно уточнить только или имя класса или тип array.
Исправить, соответственно, можно или убрав уточнение или скормив ему объекты класса String.