Foros del Web » Programando para Internet » PHP »

preparando errores en mysql

Estas en el tema de preparando errores en mysql en el foro de PHP en Foros del Web. se me ocurre ahora, a ver si alguien se acomide a ayudarme, en hacer una especie de reportes de error en consultas en mysql. A ...
  #1 (permalink)  
Antiguo 28/01/2004, 12:15
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
preparando errores en mysql

se me ocurre ahora, a ver si alguien se acomide a ayudarme, en hacer una especie de reportes de error en consultas en mysql. A mi me pasa que tengo varias consultas en una página y cuando sale un error reportado por mysql_error(); pero no sale la linea.

se me ocurre esto, y espero me ayuden a pulirlo:

Código PHP:
<?php
$consultando
=mysql_query($consulta);
IF 
NOT (mysql_errno()==0) { echo "Error: "mysql_error(). "<br>donde <br>"$consulta;

?>
Le faltan varias cosas, pero hay que optimizarlo, que sugieren?
  #2 (permalink)  
Antiguo 28/01/2004, 12:24
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Bueno, lo que yo hago es:
Código PHP:
$result=mysql_query($consulta) or die("Error en $consulta en el fichero ".__FILE__." en la linea ".__LINE__." <br> MySQL dice: ".mysql_error()); 
__FILE__ y __LINE__ son constantes especiales de PHP que indican el fichero y la linea actuales.

Realmente no llamo a die() directamente, sino que llamo a una funcion pasandole $consulta, __FILE__ y __LINE__ como parametros. Asi en esa funcion puedo hacer el die() mostrando el mensaje, o hacer el die() y guardar el mensaje en un log.

Quizas quedaria mas "profesional" creando un gestor de errores personalizado con las funciones de http://www.php.net/manual/en/ref.errorfunc.php .

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 28/01/2004, 13:14
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
mmm, josemi, haciendo una observación a tu linea, falta unos detalles que sugiero:

1. Estará bien si pusieras la $consulta, porque es probable que sea un resultado de error de síntaxis, así se corrige al momento.

2. Para simplificar, no estaría mejor una función para eso?

Última edición por lado2mx; 28/01/2004 a las 13:16
  #4 (permalink)  
Antiguo 28/01/2004, 16:12
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Cita:
Mensaje Original por lado2mx
mmm, josemi, haciendo una observación a tu linea, falta unos detalles que sugiero:

1. Estará bien si pusieras la $consulta, porque es probable que sea un resultado de error de síntaxis, así se corrige al momento.

2. Para simplificar, no estaría mejor una función para eso?
1.- No se a que te refieres, ya meto $consulta en la cadena (esta dentro de la cadena de comillas dobles).

2.- Ya te he dicho que si tengo una funcion. Mi codigo exacto es:
Código PHP:
$result=mysql_query($consulta) or mysql_die($consulta,__FILE__,__LINE__);

function 
mysql_die($consulta,$fichero,$linea) {
  die(
"Error en $consulta en el fichero $fichero en la linea $linea <br> MySQL dice: ".mysql_error());

Asi podria añadir a la funcion un parametro al final con valor por defecto para indicar la accion: mostrar mensaje, enviar por email, guardar en un log, ...

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:02.