Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Phpmyadmin error update

Estas en el tema de Phpmyadmin error update en el foro de Mysql en Foros del Web. Hola, Estoy modificando un registro en la BBDD desde phpmyadmin y aunque me diga que se realzio la modificacion, me mustra los datos antiguos, aunque ...
  #1 (permalink)  
Antiguo 18/02/2013, 13:50
 
Fecha de Ingreso: febrero-2008
Mensajes: 34
Antigüedad: 11 años, 8 meses
Puntos: 0
Phpmyadmin error update

Hola,

Estoy modificando un registro en la BBDD desde phpmyadmin y aunque me diga que se realzio la modificacion, me mustra los datos antiguos, aunque elimine la row y cree una nueva en ese campo siempre me muestra el dato anterior, intente modificando, eliminar, crear uno nuevo... pero siempre me pone ese valor

Código MySQL:
Ver original
  1. consulta SQL:
  2. UPDATE `abonados` SET `ab_bnum` = '3293440131' WHERE `ab_id` =161 LIMIT 1 ;



El campo es INT(10) si le pongo menos de 10 me guarda el valor pero cuando pongo 10 me pone el valor 2147483647
  #2 (permalink)  
Antiguo 18/02/2013, 14:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.321
Antigüedad: 12 años
Puntos: 2653
Respuesta: Phpmyadmin error update

Eso se denomina "desbordamiento" y es porque superas el rango de representación de un INT.
Ese INT tiene como rango de representación -2147483648 a +2147483647, por lo que cuando superas el rango se produce un desbordamiento del valor y MySQL trunca al mayor valor representable.
Para poder sumar deberás usar un INT UNSIGNED o BIGINT.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 18/02/2013, 14:21
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 12 años, 10 meses
Puntos: 447
Respuesta: Phpmyadmin error update

Hola szemog:

Creo que estás confundido en cuanto a al significado del (10) en tu definición de datos. Para comenzar, tu tipo de datos es INT, esto quiere decir que el rango de valores que puede almacenar es de -2147483648 a 2147483647.

Es conveniente que leas antes que nada la documentación oficial:

http://dev.mysql.com/doc/refman/5.0/...ric-types.html

Observa esta nota

Cita:
MySQL soporta otra extensión para especificar de forma óptima el ancho a mostrar de un tipo entero en paréntesis después de la palabra clave para el tipo (por ejemplo, INT(4)). Esta especificación opcional del ancho de muestra se usa para alinear a la izquierda la muestra de los valores con ancho menor que el ancho especificado para la columna.

El ancho de muestra no restringe el rango de valores que pueden almacenarse en la columna, no el número de dígitos que se muestran para valores con ancho que exceda el especificado para la columna.

Cuando se usa en conjunción con el atributo de extensión opcional ZEROFILL, el relleno por defecto de espacios se replaza por ceros. Por ejmplo, para una columna declarada como INT(5) ZEROFILL, un valor de 4 se muestra como 00004. Tenga en cuenta que si almacena valores mayores que el ancho de muestra en una columna entera, puede tener problemas cuando MySQL genera tablas temporales para algunos joins complicados, ya que en estos casos MySQL cree que los datos encajan en el ancho original de la columna.
Qué quiere decir esto??? que cuando tu pones INT(10) NO SIGNIFICA QUE PUEDAS COLOCAR CUALQUIER NUMERO CON 10 DÍGITOS.

El número que estás queriendo colocar en el campo es mayor al límite superior (2147483647) por lo tanto hay un desbordamiento. Para poder hacerlo deberás cambiar tu tipo de dato por BIGINT.

Saludos
Leo.

Cita:
Editado: otra vez se me adelantó gnzsoloyo con la respuesta jejejejejeje. Siempre pisándonos los talónes. Saludos
  #4 (permalink)  
Antiguo 18/02/2013, 14:27
 
Fecha de Ingreso: febrero-2008
Mensajes: 34
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Phpmyadmin error update

Ok muchas gracias, creo que lo mejor sera almacenar el valor en varchar ya que aunque sea un numero de cuenta no operare con el...


GRACIAS
  #5 (permalink)  
Antiguo 18/02/2013, 14:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.321
Antigüedad: 12 años
Puntos: 2653
Respuesta: Phpmyadmin error update

Los números jamás deben ser almacenados como VARCHAR, ni en tu peor pesadilla.
Si ese valor no tendrá jamás negativos, simplemente cambia el tipo de dato a INT UNSIGNED, pero bajo ninguna circunstancia lo transformes en un VARCHAR.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 18/02/2013, 17:13
 
Fecha de Ingreso: febrero-2008
Mensajes: 34
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Phpmyadmin error update

entonces lo mejor es UNSIGNED ok, el campo es un numero de 10 cifras, y nunca sera negativo y nunca se usara para operar....

Etiquetas: php, phpmyadmin, sql, update
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:15.