Ver Mensaje Individual
  #6 (permalink)  
Antiguo 06/05/2008, 02:32
miSko
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 8 meses
Puntos: 84
Re: Duplicate key de dos campos

Bueno, yo lo que haria, antes de ningun insert, es preguntar, como ya te han dixo, si ya existen esos campos en la base de datos.

Aunq el query que ha usado .php no lo usaria yo, yo usaria el siguiente :

Código PHP:

// Aqui comprobamos si Encontramos el Email en la base de Datos

$qry mysql_query("Select count(*) from usuarios where email='$email' ") ;
$ncntrado mysql_result($qry,0) ;

if (
$ncntrado != 0)
{
echo 
' El Email ya esta Registrado en la base de datos ' ;
exit() ;
}

// Aqui comprobamos si Encontramos el Nombre en la base de Datos

$qry mysql_query("Select count(*) from usuarios where nombre='$nombre' ") ;
$ncntrado mysql_result($qry,0) ;

if (
$ncntrado != 0)
{
echo 
' El Nombre ya esta Registrado en la base de datos ' ;
exit() ;
}

// Si llega a Esta linea, significa que no ha encontrado ni el nombre, ni el email

mysql_query("Insert into usuarios values ......... ") ; 

la razon por la cual no usaria el codigo de .php es el:

Select *

Para que obtener toda la informacion de un usuario, si solo necesitamos saber si esta ? Ademas, esa consulta devolveria un error de mysql en caso de no encontrar el usuario, mientras que con un

Select Count(*)

Si no lo encuentra, devuelve 0, y si lo encuentra, pues un numero distinto de 0, sin errores de mysql, y encima creo que es mas rapido q obtener cualquier informacion del usuario, aunq fuera solo 1 campo de la tabla


:]