Есть ли способ зафиксировать эти ошибки в файле журнала ...?
Да. Все ошибки и предупреждения PHP записываются в файл журнала ошибок веб-сервера, поэтому вам больше ничего не нужно делать - это уже делается.
Чтобы ответить на вторую часть вашего вопроса, если вы не хотите, чтобы на экране отображалось необработанное сообщение об ошибке, вы можете предотвратить это одним из двух способов:
Используйте символ @
перед вызовом функции - то есть $db = @mysql_connect(...);
. Это отключит отчеты об ошибках только для этого конкретного вызова функции. Обычно считается плохой идеей чрезмерно использовать эту технику, но иногда это допустимо.
Лучшим вариантом может быть отключение глобального флага сообщения об ошибках, либо в вашем PHP.ini
, в локальном файле .htaccess
, либо с помощью ini_set()
в программе.
Как правило, отчеты об ошибках на веб-странице должны использоваться только при разработке сайта. Как только сайт заработает, вы должны включить отчёт об ошибках, чтобы не было ошибок PHP, появляющихся в случайных местах на вашем тщательно сконструированном макете страницы перед вашими клиентами. Все возникшие ошибки будут по-прежнему записываться в журнал ошибок сервера, но не будут отображаться на странице.
Для ошибок MySQL, таких как та, что у вас есть, вы все равно можете получить ошибку в самой программе, используя функцию mysql_error()
. Он будет содержать сведения о последней возникшей ошибке, поэтому вы можете программно проверить ее и сообщить о приемлемом сообщении об ошибке.