Pourquoi seulement 64 Ko de données sont-ils enregistrés dans ma colonne de données MySQL?

StackOverflow https://stackoverflow.com/questions/409761

  •  03-07-2019
  •  | 
  •  

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.

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top