¿Hay alguna forma de capturar estos errores en el archivo de registro ...?
Sí. Todos los errores y advertencias de PHP se escriben en el archivo de registro de errores del servidor web, por lo que no hay nada más que deba hacer, ya se está realizando.
Para responder a la segunda parte de su pregunta, si no desea que el mensaje de error prima aparece en la pantalla, puede evitar esto en una de dos maneras:
uso del símbolo en @
al frente de su llamada de función, es decir, $db = @mysql_connect(...);
. Esto desactivará los informes de error solo para esa llamada de función específica. En general, se considera que es una mala idea usar esta técnica en exceso, pero es una actividad legítima ocasionalmente.
La mejor opción puede ser a su vez el indicador global informe de errores, ya sea en su PHP.ini
, en su archivo local .htaccess
, o el uso de ini_set()
dentro del programa.
Normalmente, los informes de errores en la página web solo se deben utilizar mientras desarrolla el sitio. Una vez que el sitio se publique, debe activar el informe de errores para que no aparezcan errores de PHP en lugares aleatorios en su diseño de página cuidadosamente diseñado frente a sus clientes. Cualquier error que ocurra se escribirá en el registro de errores del servidor, pero no se mostrará en la página.
Para los errores de MySQL, como el que tiene, todavía puede obtener el error en el programa utilizando la función mysql_error()
. Esto contendrá los detalles del último error que ocurra, por lo que puede verificarlo programáticamente y reportar un mensaje de error sensible.
En realidad estoy trabajando en un proyecto Open Source para detectar errores, mostrar un mensaje en la pantalla y regístrelos con mucha más información de la que proporciona el registro de errores estándar. http://jarofgreen.co.uk/2011/01/tracking-errors-with-php/ o http://elastik.sf.net/ – James