Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/05/2010, 09:41
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 9 meses
Puntos: 2658
Respuesta: problema guarar valor INT en phpMyAdmin

1) Los números de teléfono no se guardan como números sino como VARCHAR. Esto es simplemente porque de lo contrario hará desaparecer los ceros a la izquierda, que en ocasiones son necesarios (códigos de DDN, por ejemplo).
2) El (10) no representa la cantidad de dígitos posibles de ese número, sino el ancho del patron de representación para ajuste de texto. El valor máximo de un número está dado por su tipo de dato (TINYINT, SMALLINT, MEDIUMINT, INT BIGINT), ya que los números no se almacenan como cifras sino como binarios, usando entre 1 y 8 bytes según el tipo de columna.
Lo que tu estás haciendo es generando un desborde de rango, por eso te pone esa cifra. Un INT con signo tiene un rango de -2147483648 a 2147483647. Si le sumas uno más, cortará a esa cifra.

Según el manual de referencia:
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.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)