2012-05-14 20 views
5

Estoy construyendo un sitio usando PHP que permite a los usuarios agregar muchos datos a varias tablas en una base de datos MYSQL. Esto requiere una gran cantidad de inserción, actualización y eliminación de tablas en mi base de datos, a veces ejecutando varios comandos en un script.PHP MySQL Registro y manejo de errores: mejor práctica

Me preocupa la posibilidad de detectar errores potenciales en vivo (he probado, probado y probado, pero aún quiero un plan de respaldo).

He buscado por todas partes una solución pero no puedo encontrar una que satisfaga mis necesidades, así que me pregunto si alguien aquí tiene alguna práctica que usen o consejos que puedan darme.

Lo que quiero que suceda:

Si se produce un error de conexión a la base de datos (por ejemplo) Quiero mostrar una página o ventana de alerta con un "lo siento que hemos tenido un problema" mensaje con un botón para registrar el error Cuando un usuario hace clic en el botón, quiero poder registrar un mysql_error() en la base de datos con una descripción del comando/función fallida y el nombre de la página junto con el sello de hora/fecha que puedo rastrear.

¿Esto es algo que alguien haya hecho antes o puede ofrecer una alternativa? ¿O hay una función incorporada que hace exactamente esto que me he perdido?

Cualquier consejo sería muy apreciado.

+0

Vas a tener que intentar/atrapar los errores de mysql. El registro genérico de errores PHP generalmente es soportado por la mayoría de los servidores web. Simplemente genera un archivo de registro de todos los errores de PHP que se generan. – user17753

Respuesta

5

Si no puede conectarse a la base de datos, no podrá registrar el error en la base de datos. Aparte del mal escenario de conexión, debe usar una biblioteca php mysql que admita excepciones (como PDO) y utilizar bloques try-catch para detectar los estados de error que desee registrar.

Es probable que desee simplemente escribir en el registro de errores de apache en la falla de conexión DB (se puede hacer en un bloque try-catch).

Cuestiones relacionadas