Pourquoi seulement 64 Ko de données sont-ils enregistrés dans ma colonne de données MySQL?
Question
J'essaie d'insérer une très longue chaîne de texte dans une colonne MySQL Blob, mais MySQL n'enregistre que 64 Ko de données. La chaîne est longue de 75360 caractères. Je me connecte avec le mysql_connect ()
de PHP.
Des idées?
Cela fait-il une différence s'il s'agit d'un blob ou d'un texte? À l'origine, je l'avais sous forme de texte, mais je l'ai changé sans aucun effet.
La solution
Parce que c'est la taille maximale d'un BLOB colonne. Vous devez utiliser MEDIUMBLOB / LONGBLOB ou MEDIUMTEXT / LONGTEXT.
Autres conseils
Un type BLOB
dans MySQL peut stocker jusqu'à 65 534 octets. Si vous essayez de stocker davantage de données, MySQL tronque les données. MEDIUMBLOB
peut stocker jusqu'à 16 777 213 octets et LONGBLOB
peut stocker jusqu'à 4 294 967 292 octets.
Si vous activez le mode SQL strict ( modes MySQL ) vous obtiendrez une erreur lorsque vous essayez de stocker des données qui ne rentrent pas dans le type de colonne.
Vous avez également demandé s’il existait une différence entre BLOB et TEXT
Les BLOB sont pour des données binaires. Si vous faites une requête LIKE sur un champ BLOB, elle sera sensible à la casse.
c'est-à-dire
SELECT 'TEXT' LIKE 'TEXT';
=> 1 for both BLOB and TEXT
SELECT 'TEXT' LIKE 'text';
=> 1 for TEXT
=> 0 for BLOB
La colonne blob ne représente que 64 Ko par la documentation
Essayez plutôt un type de colonne mediumblob ...