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.

¿Fue útil?

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 ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top