PHP - Error duplicate entry for primary key

   
Vista:

Error duplicate entry for primary key

Publicado por Alberto (10 intervenciones) el 15/07/2013 12:48:02
Tengo un código que me da un error al hacer una insercción en mysql pero se que el registro de la clave principal no esta duplicado. ¿A que se puede deber?.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Error duplicate entry for primary key

Publicado por xve (5520 intervenciones) el 15/07/2013 15:55:30
Hola Alberto, no se que motor de base de datos estas utilizando, pero el error que nos indicas en el titulo, es que estas añadiendo un registro con una clave primaria que ya existe.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error duplicate entry for primary key

Publicado por Alberto (10 intervenciones) el 15/07/2013 16:55:35
La base de datos es mysql. Lo más curioso es que realmente si que hace el insert pero al lanzarme el error, me muestra el error.

Por cierto veo que si falla una insercción o update las demás no se realizan.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Error duplicate entry for primary key

Publicado por xve (5520 intervenciones) el 15/07/2013 17:34:40
Por lo que me dices Alberto... puede ser que ejecutes la instrucción dos veces?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error duplicate entry for primary key

Publicado por Alberto (10 intervenciones) el 16/07/2013 11:32:23
Eso es lo que pensaba yo al principio pero no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Error duplicate entry for primary key

Publicado por xve (5520 intervenciones) el 16/07/2013 12:42:11
Siento no poder serte de mas ayuda con la información que nos das...

Ten en cuenta, que si no tienes ningún registro en la base de datos, y cuando lo añades te lo añade y te da el error...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error duplicate entry for primary key

Publicado por Alberto (10 intervenciones) el 16/07/2013 12:49:40
Ya sé que parece una cosa rara y por eso pido ayuda.
Pudiera ser por el tipo de conexión entre ambas, por como este configurada la tabla y eso le haga dar un error al PHP aunque el insert funcione. Igual alguien conoce más en profundidad el control de errores en la inserción mediante php.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Error duplicate entry for primary key

Publicado por xve (5520 intervenciones) el 16/07/2013 17:06:46
Hola Alberto, nos puedes mostrar el código??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error duplicate entry for primary key

Publicado por Alberto (10 intervenciones) el 16/07/2013 17:18:58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Function InsertarProyecto($conexion, $data){
	$query="INSERT INTO proyectos VALUES ('";
 
	for($i=0;$i<=21;$i++) {
		if ($i==2)
			$query=$query.$data[$i]."',";
		else if ($i==3)
			$query=$query.$data[$i].",'";
		else if (($i==4 or $i==11 or $i==18 or $i==19) and $data[$i]!='0000-00-00')
			$query=$query.FormatearFecha($data[$i])."','";
		else
			//$query=$query.$data[$i]."','";
			$query=$query.addslashes($data[$i])."','";
	}
	$query=$query.$data[22]."',";
	$query=$query.$data[23].",";
	$query=$query.$data[24].")";
 
	mysql_query($query, $conexion);
	$resultado = mysql_query($query);// or die ("Problema con query");
	if (!$resultado)
		echo 'Consulta no válida: ' . mysql_error()."<br>";
	return $resultado;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Error duplicate entry for primary key

Publicado por xve (5520 intervenciones) el 16/07/2013 20:52:12
Hola Alberto, ahora que veo que lo tienes puesto en una función, puedes hacer una prueba? en la primera linea dentro de la función pon algo como:
1
print "A";

De esta manera, veras en la web si pasa por ahí una o dos veces.

Si nos puedes comentar el resultado...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error duplicate entry for primary key

Publicado por Alberto (10 intervenciones) el 17/07/2013 18:15:27
Ya habia hecho pruebas similares y solo se ejecuta una vez. Pero por si acaso lo he vuelto a poner.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Error duplicate entry for primary key

Publicado por xve (5520 intervenciones) el 17/07/2013 21:15:34
Hola Alberto, podria ser que la tabla este vinculada con alguna otra tabla (clave foranea) que te de este error?

Nos puedes mostrar la estructura de la tabla?
1
mysqldump -u root -p --no-data BaseDeDatos Tabla


Ya no se me ocurren mas cosas... haber si por aquí vemos algo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error duplicate entry for primary key

Publicado por Alberto (10 intervenciones) el 18/07/2013 09:09:38
No se a que se debe pero no me funciona esa sintaxis. Vi la documentación de sql y parece que esta bien.

De todas maneras para ayudarte en la dirección que apuntas. Tengo dos claves foraneas, la definicion esta asi:
ON DELETE NO ACTION ON UPDATE NO ACTION;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar