Foros del Web » Programando para Internet » PHP »

error insert php en mysql

Estas en el tema de error insert php en mysql en el foro de PHP en Foros del Web. Como estan? Tengo una tabla en la base de datos cuyo PK es DNI "int de 12". Cuando intento insertarle un DNI con un numero ...
  #1 (permalink)  
Antiguo 28/10/2007, 20:44
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
error insert php en mysql

Como estan?

Tengo una tabla en la base de datos cuyo PK es DNI "int de 12". Cuando intento insertarle un DNI con un numero grandecito por ejemplo '8968968967' no se porque el sistema me lo convierte en '2147483647'. soea en la base de datos queda ingresado es ese numero en vez de el que digite.

no se si es el tipo de dato o a que se debe este error y como puedo solucionarlo.

Gracias por su ayuda!
  #2 (permalink)  
Antiguo 28/10/2007, 20:58
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: error insert php en mysql

Mmm... podrias dejar el script que esta insertando el dato y la estructura de la tabla... como un CREATE table o algo...

Grax!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 28/10/2007, 21:02
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Re: error insert php en mysql

Este es el script
Código PHP:
$creaestab mysql_query("INSERT INTO establecimientos  VALUES ('".$Nit."','".$NombEstab."','".$TipoEstab."','".$Cod_Cliente."','".$Zona."','".$DirEstab."','".$TelfEstab."',1)"); 
este es el script de creacion de la tabla:
Código:
CREATE TABLE `establecimientos` (
  `DNI` int(12) NOT NULL,
  `NOMBRE_ESTAB` varchar(20) NOT NULL,
  `TIPO_ESTAB` int(4) NOT NULL,
  `ID_CLIENTE` int(12) NOT NULL,
  `ZONA` int(4) NOT NULL,
  `DIRECCION` varchar(30) NOT NULL,
  `TELEFONO` varchar(14) NOT NULL,
  `ESTADO` int(2) NOT NULL,
  PRIMARY KEY  (`DNI`),
  FOREIGN KEY (TIPO_ESTAB) REFERENCES tipo_establecimiento (CODIGO),
  FOREIGN KEY (ID_CLIENTE) REFERENCES clientes (CODIGO),
  FOREIGN KEY (ZONA) REFERENCES zonas (CODIGO)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  #4 (permalink)  
Antiguo 28/10/2007, 21:13
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: error insert php en mysql

Ok... te pedi la estructura para saber si el DNI estaba como "AUTO_INCREMENT" porque tenia que descartarlo.

La consulta hazla asi:
Código PHP:
$sql "INSERT INTO establecimientos  VALUES ('".$Nit."','".$NombEstab."','".$TipoEstab."','".$Cod_Cliente."','".$Zona."','".$DirEstab."','".$TelfEstab."',1)";
echo 
$sql;
die();
$creaestab mysql_query($sql);
//Asi puedes testear sin que se guarden los datos y ver si la consulta va con los valores reales
//Si es asi, el problema esta en el mysql, sino esta en php. 
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 28/10/2007, 21:32
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Re: error insert php en mysql

el error esta en mysql no se porque razon me convierte el numero en ese otro.

Que puedo hacer? . Gracias por sguirme ayudando!
  #6 (permalink)  
Antiguo 28/10/2007, 22:02
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: error insert php en mysql

Mmm... a ver... segun esto:
Cita:
Iniciado por Documentacion_mySQL
El rango de una coluna INT es de -2147483648 a 2147483647.
Trata de ponerla UNSIGNED y prueba... porque ahi el rango sube:
Cita:
Iniciado por Documentacion_mySQL
Si la columna INT es UNSIGNED, el tamaño del rango de la columna es el mismo, pero los límites cambian a 0 y 4294967295.
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 28/10/2007, 22:10
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Re: error insert php en mysql

Haber si le entendi!

Lo que me dice es que le quite el tamaño 12 al campo y le coloque el atributo UNSIGNED para que me permita insertar este tipo de números?
  #8 (permalink)  
Antiguo 28/10/2007, 22:19
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: error insert php en mysql

Nop... solo agregale el atributo UNSIGNED, el tamaño lo mantienes ;)
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #9 (permalink)  
Antiguo 29/10/2007, 14:26
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Re: error insert php en mysql

No men gracias pero no funciono inserte el numero 8398398395 y me quedo el numero 4294967295.

No sabe otra posible solución???
  #10 (permalink)  
Antiguo 29/10/2007, 14:32
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: error insert php en mysql

Pfff... que numeritos... en vez de INT podés usar BIGINT
  #11 (permalink)  
Antiguo 29/10/2007, 14:43
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: error insert php en mysql

Sip... como te dije arriba el cambiarlo a UNSIGNED aumenta el valor a 4294967295 (que es el numero MAXIMO) por lo tanto debes tratar como te dice Seppo.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #12 (permalink)  
Antiguo 29/10/2007, 14:43
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Re: error insert php en mysql

Gracias a los dos por fin solucione el problem. Que abeejaaa

Si era con el bigint pero de todas formas Gracias a los dos.
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 06:21.