Foros del Web » Programando para Internet » PHP »

imprimir errores mysql

Estas en el tema de imprimir errores mysql en el foro de PHP en Foros del Web. Hola, es `posible modificar como muestra los errores mysql por medio de php. A q me refiero? vieron cuando el usuario no rellena un campo ...
  #1 (permalink)  
Antiguo 27/06/2006, 12:21
 
Fecha de Ingreso: febrero-2005
Mensajes: 183
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta imprimir errores mysql

Hola, es `posible modificar como muestra los errores mysql por medio de php.
A q me refiero? vieron cuando el usuario no rellena un campo de texto y pone Column 'dia' cannot be null es posible devolver un resultado en castellano para que el usuario sepa en español que error tubo?
  #2 (permalink)  
Antiguo 27/06/2006, 12:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En principio se trata de tu aplicación tome el control .. es decir. Sabiendo que cualquier función de Mysql (o la mayoría) devuelven un "false" cuando se origina un error .. puedes controlarlo tipo:

Código PHP:
if (mysql_query($sql)){
// Tu error personalizado .. o formateado el que dá Msyql con mysql_error() o mysql_errno()

Tendrás el problema de que PHP seguirá mostrando su error .. para eso, "ocultalo" con @ delante de la función involucrada. También podrías gestionar como PHP muestra los mensajes de error en general con la función:

error_reporting
www.php.net/error_reporting

El código anterior quedaría:

Código PHP:
if (@mysql_query($sql)){
// Tu error personalizado .. o formateado el que dá Msyql con mysql_error() o mysql_errno()

Cita:
vieron cuando el usuario no rellena un campo de texto y pone Column 'dia' cannot be null
Este tipo de problemas los tienes que gestionar tu con código PHP .. si tal "variable" no puede ser nula (distinto de cero o '' cadena vacia) .. valida tipo:
Código PHP:
if (empty($_POST]['dia'])){
   
// manejas el mensaje de error
} else {
  
// ejecutas tu consulta ...

En definitiva . .no se trata de "esperar" el mensaje de error "fatal" de Mysql .. sino de que TU como sabes que datos y en que formato han de ingresar a tus BBDD los valides -antes- de atactar tus consultas SQL .. Por lo demás igualmente puedes controlar errores inesperados según comenté anteriormente ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 27/06/2006, 12:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Usa mysql_errno(), esto te devuelve un codigo numerico, del error en MySQL, luego puedes consultar:

http://dev.mysql.com/doc/refman/5.0/...-handling.html para ver que significa cada clave de error.
  #4 (permalink)  
Antiguo 27/06/2006, 12:59
 
Fecha de Ingreso: febrero-2005
Mensajes: 183
Antigüedad: 19 años, 2 meses
Puntos: 0
Muchas gracias.
  #5 (permalink)  
Antiguo 27/06/2006, 13:07
 
Fecha de Ingreso: febrero-2005
Mensajes: 183
Antigüedad: 19 años, 2 meses
Puntos: 0
y en el caso de querer hacerlo con varios campos como seria? elseif¿? como en ActionScripts
  #6 (permalink)  
Antiguo 27/06/2006, 14:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por index000
y en el caso de querer hacerlo con varios campos como seria? elseif¿? como en ActionScripts
O con un switch() .. o con un array (metiendo los campos obligatorios en ella y recorriendolo) .. En fin .. "lógica" para hacer esto es la típica de programación "normal".

A mi en lo personal me gusta usar métodos como este:

Código PHP:
$array_campos_obligatorios=array("nombre1","nombre2")
foreach (
$array_campos_obligatorios as $campo){
  if (empty(
$_POST{$array_campos_obligatorios[$campo]})){
     echo 
"Hay campos obligatorios que no tienen valor";
     break;
  }

El código lo puedes refinar como gustes .. Aprovecho que $_POST es un array (al igual que $_GET) y que contiene todas las variables que llegan de tu URL o formulario .. uso un array para tener los nombres de los campos a validar y lo recorro con un bucle .. con +2 opciones se hace bastante efectivo dicho código .. tal vez para un par de variables sólo con un if()elseif() .. else() .. te sobraría ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 02:40.