Возникла необходимость отключить сообщения об ошибках при работе php-модуля. Думал, что все просто: error_reporting( E_ERROR ), но вот ошибки во время выполнения sql-запросов все равно вылетают в окне броузера. Казалось бы, достаточно вместо Код (PHP): $sql = mysqli_query($link, $zapros); писать Код (PHP): $sql = mysqli_query($link, $zapros) or die() ; но все не так просто - бОльшая часть кода уже написана без этих die(). Возникает вопрос: можно ли все-таки отключить все сообщения об ошибках при выполнении sql-запросов какой-нибудь одной командой? Желающих написать "ошибки нужно исправлять, а не скрывать" прошу воздеражться от советов. Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
display_errors("0"); не помогло. Может потому, что "...это ни на что не повлияет, если в скрипте есть фатальные ошибки." Хотя странно... сначала не работало. После перезагрузки пишет "Call to undefined function display_errors()". Если пишу ini_set(display_errors, false); то вообще никакой реакции...
А шо die научился ошибки без mysql_error() выводить? Я как то давно пользовался Предлагаю еще раз загуглить и попробовать написать правильно. Это легко поэтому давай самостоятельно попробуй.
Если пишу ini_set(display_errors, false); то вообще никакой реакции... Может на fatal error эта директива не действует?
С кавычками тоже не работает. Ошибка - Cannot extract1 values... Unknown column '1id' in 'field list'. Только не говорите, как исправить эту ошибку, я ее сам и написал, чтобы проверить работоспособность "отключателя сообщний в броузер".
Не, ну я как бы к этому и вёл, что если дай будет вызывать мускли_еррор, то будут сыпаться ошибки. Думал, что автор дай написал без вызова мускли_еррор просто в качестве примера...
До ini_set('display_errors', 0); выдает 1, а после ini_set('display_errors', 0); уже выдает 0. Но ошибку из sql-запроса выводит на экран.
error_reporting - контролирует какие ошибки будут логироваться display_errors - вывод в браузер Если тебе ничего не помогает это означает что у тебя руки не из того места растут Почитай статью и подумай еще раз http://phpfaq.ru/debug Добавлено спустя 11 минут 44 секунды: Потестил, ты похоже где то говнокодил и оставил вызов функции mysqli_error
Не, не получается удержаться. Ошибки нельзя скрывать. Их нужно обрабатывать. Если вы добьётесь работы того, что вам тут советуют, вы просто получите пустой экран. Вот поверьте, пользователю и вам от этого будет плохо. Читайте про set_error_handler. Перенаправляйте туда все ошибки вместе с нотайсами, а дальше уже решайте сами, выводить на экран, писать в лог, отправлять в /dev/null или просто игнорировать.
Вроде как set_error_handler только пользовательские ошибки обрабатывает(которые были вызваны trigger_error())
Он даже фаталы и ошибки уровня ядра ловит, все ок. Собсно, для того эта функция и сделана, чтобы можно было свои логи вести, а не курить километровые логи всяких апачей, где между тысячью репортов сервера фига с два ты увидишь строчку, оставленную пхп.