Во-первых, error_reporting(0); нельзя писать вообще
НИКОГДА. Эта строчка всегда должна быть только в виде
error_reporting(E_ALL);
Во-вторых, ini_set('display_errors', 0); - это
единственное, что нужно, чтобы запретить вывод ошибок, которые генерирует РНР.
В-третьих, чтобы твой код не выводил ошибки,
не надо писать код, который сам же выводит ошибки на экран. Логично, правда?
В частности, никогда не использовать обезьяний код, который очень любят рекомендовать местные "специалисты", echo $mysqli->error или or die. То есть тупо выкинуть все такие места из кода
Вместо этого надо просто сказать РНР чтобы ошибки при работе с БД генерировались сами.
И тогда их вывод будет подчиняться директиве display_errors
В частности, для mysqli это
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);