Foros del Web » Programando para Internet » PHP »

mostrar error en caso de fallo al actualizar / insertar

Estas en el tema de mostrar error en caso de fallo al actualizar / insertar en el foro de PHP en Foros del Web. Hola estoy haciendo un update de unos datos de una tabla pero si algo falla desearía mostrar un error diferente al que se da el ...
  #1 (permalink)  
Antiguo 18/03/2005, 10:20
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 14 años, 4 meses
Puntos: 0
Pregunta mostrar error en caso de fallo al actualizar / insertar

Hola estoy haciendo un update de unos datos de una tabla pero si algo falla desearía mostrar un error diferente al que se da el die y reportar el error a un email, el código que tengo actualmente es:

Código PHP:
//ejecuto SQL
$update "UPDATE tabla SET
tabla.campo1='$campo1',
tabla.campo2='$campo2'
WHERE tabla .id ='$id'"
;

mysql_query($update) or die("Error en consulta <br>MySQL dice: ".mysql_error());
//end ejecutar 
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #2 (permalink)  
Antiguo 18/03/2005, 10:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La función mysql_query() devuelve un "boolean" (true/false) según se pueda o no ejecutar .. por ende puedes usarlo en un if() clasico (de hecho ese "or" .. es una versión resumida de un if() completo para el caso "false")

Código PHP:
if (@mysql_query($update)){
// envias tu e-mail o lo que gustes ..
// hasta puedes usar:
echo "Error: ".mysql_error();

El @ elimina los mensajes de error de PHP para que tu los controles como gustes ...

Un saludo,
  #3 (permalink)  
Antiguo 18/03/2005, 11:17
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 14 años, 4 meses
Puntos: 0
ok

Cita:
Iniciado por Cluster
La función mysql_query() devuelve un "boolean" (true/false) según se pueda o no ejecutar .. por ende puedes usarlo en un if() clasico (de hecho ese "or" .. es una versión resumida de un if() completo para el caso "false")

Código PHP:
if (@mysql_query($update)){
// envias tu e-mail o lo que gustes ..
// hasta puedes usar:
echo "Error: ".mysql_error();

El @ elimina los mensajes de error de PHP para que tu los controles como gustes ...

Un saludo,

Ok cluster, muchas gracias

le he puesto el codigo así:

Código PHP:
if (@mysql_query($update)==false){
echo 
"error"
bueno luego lo personalizo más y con un email para atender el problema
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #4 (permalink)  
Antiguo 18/03/2005, 13:58
 
Fecha de Ingreso: diciembre-2004
Mensajes: 128
Antigüedad: 13 años
Puntos: 0
Podrias ver la funcion mysql_errno ,tambien, que deuelve el número del mensaje de error de la última operación.
Te podria servir para armar distintas opciones de acuerdo al error devuelto.


Extraido de http://www.rinconastur.net/ informatica/memoria de un aprendiz de PHP:
mysql_errno($enl)
Indica el número de error que se ha producido en las transacciones MySQL realizadas a través del identificador de enlace $enl.
Cuando el número de error es CERO significa que no se ha producido error. Otros valores son menos agradables. A modo de ejemplo:
El error número 1050 indica que hemos tratado de crear una tabla ya existente.
El error número 1062 indica que hemos tratado de introducir un valor con clave duplicada.http://ar2.php.net/manual/es/function.mysql-errno.php
  #5 (permalink)  
Antiguo 18/03/2005, 13:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ops! .. me dejé el:

Código PHP:
if (@!mysql_query($update)){ 
Es decir .. no "negé" con ! el resultado de la ejecución de dicha función .. con eso puedes evitar tener que usar ==false ..

Un saludo,
  #6 (permalink)  
Antiguo 18/03/2005, 14:33
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 13 años
Puntos: 34
No es que no sea válida esa opción, pero aporto lo mio. Yo uso trigger_error, complementado con set_error_handler, con el cual, no solo capturo los errores de sql, sino que los errores de php tambien.

http://ar2.php.net/manual/en/function.trigger-error.php
http://ar2.php.net/manual/en/functio...or-handler.php

No hay nada mas comodo que tener todo en el email;)
__________________
Mi punto de partida es Que Bueno Lo Nuevo
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 21:44.