Por que só é 64kB de dados sendo salvos na minha coluna de dados MySQL?
Pergunta
Eu estou tentando inserir uma cadeia de texto muito longo para uma coluna de MySQL Blob, mas o MySQL só está salvando 64kB dos dados. A corda é 75360 caracteres. Eu estou conectando com mysql_connect()
do PHP.
Todas as idéias?
Será que fazer a diferença se é Blob ou texto. Originalmente, eu tinha-o como um texto, mas mudou-lo sem afetar.
Solução
Porque essa é a máxima tamanho de um BLOB coluna. Você precisa usar MEDIUMBLOB / LONGBLOB ou MEDIUMTEXT / LONGTEXT.
Outras dicas
Um tipo BLOB
no MySQL pode armazenar até 65.534 bytes, se você tentar armazenar mais do que isso MySQL dados muito irá truncar os dados. MEDIUMBLOB
pode armazenar até 16,777,213 bytes, e LONGBLOB
pode armazenar até 4,294,967,292 bytes.
Se você ativar o modo SQL estrito ( MySQL modos ), você receberá um erro quando você tentar armazenar dados que não se encaixam no tipo de coluna.
Você também perguntou se há uma diferença entre BLOB e TEXT
BLOBS são para dados binários. Se você fizer uma consulta como em um campo BLOB será maiúsculas de minúsculas.
i.
SELECT 'TEXT' LIKE 'TEXT';
=> 1 for both BLOB and TEXT
SELECT 'TEXT' LIKE 'text';
=> 1 for TEXT
=> 0 for BLOB
A coluna blob é de apenas 64Kb por a documentação
Tente um tipo de coluna MEDIUMBLOB vez ...