Dato largo por formulario, error en BD

Un formulario que ingresa datos a una BD. Normalmente siempre me ha funcionado bien, pero me pasó que una vez tuve que ingresar un campo de 11 dígitos, y al revisar lo que ingresó en la BD, vi que el este campo era diferente, todos los demás si funcionaron. El campo, en un principio era int_IdCliente int(15). Luego lo cambié a str_IdCliente` varchar(30) para intentar corregir el error, pero el resultado es el mismo.
Me podé ayudar por favor con esto, la verdad no sé dónde pueda estar el error.

2 respuestas

Respuesta
1
Pero si cambias el tipo de campo vas a tener problemas más si pasas de un tipo de campo numérico a caracteres.
La forma de consulta y grabación no es la misma.
No entendi el porq decidistes cambiar pero si cambias eso deberas cambiar varias cosas mas en los formularios.
Los altas/modificacion son diferentes al asignar valores numéricos o de caracteres.
Si te funcionaba dejalo como antes, de ultima otro tipo numérico.
No fue con el cambio que me dejó de funcionar, todo lo contrario, el cambio fue para buscar una mejoría. Pero sigue pasando exactamente lo mismo, ya sea como varchar o como int. El valor más largo que acepta es de 10 caracteres.
¿Alguna idea sobre lo que me pueda estar pasando?
Es seguro porque te estas paasando los rangos de los valores.
Usa otro tipo numero más grande BIGINT ahí seguro no pasas!
Su tamaño es de 3 bytes. INT [(M)] [UNSIGNED] [ZEROFILL] Número entero. Con la opción UNSIGNED puede tomar valores entre 0 y 4 294 967 295. En caso contrario, puede estar comprendido entre -2 147 483 648 y 2 147 483 647.
Son válidos todos los comentarios de los casos anteriores. Su tamaño es de 4 bytes. INTEGER [(M)] [UNSIGNED] [ZEROFILL] Es un sinónimo de INT BIGINT [(M)] [UNSIGNED] [ZEROFILL] Número entero grandes. Con la opción UNSIGNED puede tomar valores entre 0 y 18 446 744 073 709 551 615. En caso contrario, puede estar comprendido entre -9 223 372 036 854 775 808 y 21 474 839 223 372 036 854 775 807 647, pero al usarlo desde PHP estará sujeto a las limitaciones máximas de los valores numéricos de este.
Respuesta
1
Si logro entender bien, el campo era numérico y al guardar grabó un 888888 o algo así. Imagino que el campo era int. Sucede que este tipo de campo tiene una capacidad finita. Por esto le sugiero que lo defina como double 11,0. Esto le permite guardar cantidades inmensas sin problemas.
Sugerencia. No ponga un campo numero como varchar, puesto que al hacer consultas se puede bloquear el servidor, que se esfuerza mucho al compara un texto con un número.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas