¿Por qué solo se guardan 64kB de datos en mi columna de datos MySQL?
Pregunta
Estoy intentando insertar una cadena de texto muy larga en una columna de MySQL Blob, pero MySQL solo está guardando 64kB de los datos. La cadena tiene 75360 caracteres. Me estoy conectando con el mysql_connect ()
de PHP.
¿Alguna idea?
Hace una diferencia si es Blob o Text. Originalmente lo tenía como texto pero lo cambié sin ningún efecto.
Solución
Porque ese es el tamaño máximo de un BLOB columna. Debe utilizar MEDIUMBLOB / LONGBLOB o MEDIUMTEXT / LONGTEXT.
Otros consejos
Un tipo BLOB
en MySQL puede almacenar hasta 65,534 bytes, si intenta almacenar más de esta cantidad de datos, MySQL truncará los datos. MEDIUMBLOB
puede almacenar hasta 16,777,213 bytes, y LONGBLOB
puede almacenar hasta 4,294,967,292 bytes.
Si habilita el modo SQL estricto ( modos MySQL ) obtendrá un error cuando intente almacenar datos que no encajan en el tipo de columna.
También preguntó si hay una diferencia entre BLOB y TEXTO
Los BLOBOS son para datos binarios. Si realiza una consulta LIKE en un campo BLOB, será sensible a las mayúsculas.
es decir,
SELECT 'TEXT' LIKE 'TEXT';
=> 1 for both BLOB and TEXT
SELECT 'TEXT' LIKE 'text';
=> 1 for TEXT
=> 0 for BLOB
La columna de blob solo tiene 64 KB por la documentación
Prueba un tipo de columna mediumblob en su lugar ...