Foros del Web » Programando para Internet » PHP »

Personalizar mensaje error MySql

Estas en el tema de Personalizar mensaje error MySql en el foro de PHP en Foros del Web. Buen dia, y muchas gracias a quien me pueda colaborar. Tengo el siguiente caso con el cual hago una insercion de registro en la BD ...
  #1 (permalink)  
Antiguo 03/04/2009, 11:44
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Personalizar mensaje error MySql

Buen dia, y muchas gracias a quien me pueda colaborar.

Tengo el siguiente caso con el cual hago una insercion de registro en la BD

Código PHP:
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO reg_usr (mail, nombre, apellido, password, tipo_usr, fecha_in) VALUES (%s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['mail'], "text"),
                       
GetSQLValueString($_POST['nombre'], "text"),
                       
GetSQLValueString($_POST['apellido'], "text"),
                       
GetSQLValueString($_POST['password'], "text"),
                       
GetSQLValueString($_POST['tipo_usr'], "text"),
                       
GetSQLValueString($_POST['fecha_in'], "date"));

  
mysql_select_db($database_conectar$conectar);
  
$Result1 mysql_query($insertSQL$conectar) or die(mysql_error());
  echo 
"pase por aqui";
echo   
mysql_error();
 switch(
mysql_errno())
   {
       case 
1062:
           echo 
"El correo electronico ingresado ya esta registrado en nuestra base de datos";
       
   }
  
  
$insertGoTo "usr.reg1.php?m=$mail";
      
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];

  }
  
header(sprintf("Location: %s"$insertGoTo));

Pero cuando hago la prueba me sale una pagina en blanco con el siguiente mensaje

Cita:
Duplicate entry '[email protected]' for key 1
Pero lo que quiero es que me aparezca un mensaje personalizado para este error... que estoy haciendo mal o en donde debo colocar el codigo para realizar esto ???

Muchas gracias.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #2 (permalink)  
Antiguo 03/04/2009, 11:50
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Personalizar mensaje error MySql

como q personalizado ??
o lo q kieres es corregir el error
ese error me parece q es por q has llegado al limite de tu base solo tienes q hacerla mas grande jeje literalmente
am creo q no entendi eso de personalizarlo saludines!!
y sorry si es una burrada
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #3 (permalink)  
Antiguo 03/04/2009, 12:00
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Personalizar mensaje error MySql

Gracias por responder.... si te fijas el erros que produce MySql es:

Duplicate entry '[email protected]' for key 1


Yo quiero que en vez de ese mensaje me aparezca algo asi:

El correo electronico ingresado ya esta registrado en nuestra base de datos.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #4 (permalink)  
Antiguo 03/04/2009, 12:08
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Personalizar mensaje error MySql

Result1 = mysql_query($insertSQL, $conectar) or die("pones tu texto aki saludines!!");
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #5 (permalink)  
Antiguo 03/04/2009, 12:11
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
Respuesta: Personalizar mensaje error MySql

Imprime el valor de mysql_errno() este te va a dar el código del error, sabiendo que error es puedes hacer un if() para comparar, por ejemplo:
Código php:
Ver original
  1. if( mysql_errno() == 32 ) {
  2.       echo "El correo electronico ingresado ya esta registrado en nuestra base de datos.";
  3. } else {
  4.       echo mysql_error();
  5. }

Saludos.
  #6 (permalink)  
Antiguo 03/04/2009, 12:47
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Personalizar mensaje error MySql

Me funciono perfectamente.... pero me lo saca en una pagina en blanco... yo tengo dos contenedores uno que se llama banner y otro content es posible sacar el mensaje en el div content y que no me lo saque en unca pagina en blanco ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #7 (permalink)  
Antiguo 03/04/2009, 15:27
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
Respuesta: Personalizar mensaje error MySql

Si usas el código que te mostré puedes hacerlo asignandolo a una variable:
Código php:
Ver original
  1. if( mysql_errno() == 32 ) {
  2.       $error = "El correo electronico ingresado ya esta registrado en nuestra base de datos.";
  3. } else {
  4.       $error = mysql_error();
  5. }
  6.  
  7. // cosas
  8. echo $error;

Saludos.
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 18:15.