type de données texte

Eléphant du PHP | 110 Messages

22 mars 2007, 17:22

alors autre question sur les types de données.
j'ai un soucis car j'ai vu que les varchar etait limités a 255 caracteres. Le probleme c'est que je vais avoir des champs de textes superieurs à 255 caracteres. j'ai regarde la doc mais j'ai trouve comme autre champ de texte que les types d'objets binaires text.
alors question: est ce qu'il y a que ce type de données pour des champs superieurs à 255 caracteres?
et dans ce cas comment fonctionne le type text? on insert un nom de fichier comme les blobs?

merci!

Eléphanteau du PHP | 20 Messages

22 mars 2007, 17:33

A compter de la version 5.0.3 de MySQL, le type VARCHAR peut contenir jusqu'à 65535 caractères.

Le problème des types binaires comme TEXT c'est qu'ils stockent des octets, pas des caractères. Donc, par exemple impossible d'utiliser des fonctions SQL comme UPPER() ou LOWER().
Pierre Dumont
Formateur Linux / MySQL
http://www.anaska.com
Tel : 01 45 28 09 82 / Fax : 01 45 28 72 39

Eléphanteau du PHP | 20 Messages

22 mars 2007, 17:49

Correction : TEXT n'est pas binaire ! Je pensais à VARBINARY.
Pierre Dumont
Formateur Linux / MySQL
http://www.anaska.com
Tel : 01 45 28 09 82 / Fax : 01 45 28 72 39

Eléphant du PHP | 110 Messages

22 mars 2007, 18:17

hum..merci mais le probleme c'est que la version sur le serveur que j'utilise est la 4 :(

auriez vous des liens ou des infos pour m'indiquer comment fonctionne le type text.?

merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

22 mars 2007, 18:24

auriez vous des liens ou des infos pour m'indiquer comment fonctionne le type text.?
Pas dure à trouver, la doc : http://dev.mysql.com/doc/
Modifié en dernier par ouckileou le 22 mars 2007, 18:26, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 mars 2007, 18:25

Il fonctionne comme varchar, à ceci près qu'il n'y a pas à spécifier de taille max :)

CHAR (n) : Chaîne de n caractère, taille fixe

VARCHAR(n) : Chaîne de caractères variable (255 caractères max)

TEXT : Zone de texte standard (65.535 caractères max)
le contenu est de type ASCII (insensible à la casse)

MEDIUMTEXT : Zone de texte moyenne (16.777.216 caractères max) type ASCII

LONGTEXT : Grande zone de texte (4.294.967.295 caractères max), type ASCII
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 20 Messages

22 mars 2007, 18:26

J'ai jeté un coup d'oeil ici :
http://dev.mysql.com/doc/refman/4.1/en/blob.html
Il y est dit que
BLOB columns are treated as binary strings (byte strings). TEXT columns are treated as non-binary strings (character strings)
Donc s'il s'agit de stocker une chaîne de caractères (ou le chemin d'accès à un fichier), le type TEXT devrait convenir. Il s'utilise comme un VARCHAR.
Pierre Dumont
Formateur Linux / MySQL
http://www.anaska.com
Tel : 01 45 28 09 82 / Fax : 01 45 28 72 39

Eléphant du PHP | 110 Messages

22 mars 2007, 18:29

merci bien