1) Есть лог, куда пишутся все ошибки, ЕГО НАДО СМОТРЕТЬ, искать решение на уровне "что-то не работает, надо тыкать пальцем в разные места" глупо и неэффективно.
2) Если лог не ведется(что конечно странно, но возможно) то логи ошибок нужно включить, вывод можно не включать.
3)
type_ed = explode(",", $n['threat_type']);
$type_edit = '';
foreach ($type_ed as $type_edd)
{
$ttt = $db->query("SELECT * FROM `type` WHERE `id`='".$type_edd."'")->fetch_assoc();
$name_type = $ttt['type'];
$type_edit.= "$name_type,";
}
что то в этом куске неверно, запросы в цикле есть зло, и тут явно напрашивается более другое решение, навскидку можно было сделать сразу 1 запрос где `id` in ($type_ed), хотя подозреваю что это криво организованный список категорий, записываемый строкой с запятыми в качестве разделителя. Это г*нокод, по этому и тормоза и глюки.
4) Если проблема во времени выполнения скрипта то можно запускать в консольном режиме в отдельном процессе в бэкграунде, что для разовых задач нормально.