Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 18-09-2009 10:55:41

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

[MySQL 5.1.35]Bug caractère spéciaux "1406 Data too long for column"

Salut,

Rien avoir avec PHP, il existe un bug dans MySQL5.0 lorsqu'on essaie d'insérer des données brutes avec des caractères spéciaux.

Apparemment le problème est général et lié à l'encodage UTF8 et Windows.

Si vous avez expérimenté ce bug, comment l'avez-vous résolu ? En attendant, je cherche sur le net, mais il y en a dans tous les sens smile

Merci,

A+ benjamin.

Dernière modification par Delprog (18-09-2009 14:33:02)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#2 18-09-2009 12:24:53

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [MySQL 5.1.35]Bug caractère spéciaux "1406 Data too long for column"

il faut que ce soit de l'UTF8 sur toute la chaine (php SQl Connexion et champs de la base)
A+JYT

Hors ligne

 

#3 18-09-2009 12:38:13

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [MySQL 5.1.35]Bug caractère spéciaux "1406 Data too long for column"

Oui, j'ai toujours tout en UTF8. En fait en creusant un peu je me rend compte que c'est très particulier.

Par exemple, pour un champ si je tente d'insérer des "à" en fin d'expression il refuse : "1406 Data too long for column...".

Par contre, si j'insère des "à" au milieu d'une expression ça passe.

Ex:

Code:

INSERT INTO table_test ('test') VALUES ('Là haut');
// ==> OK, aucun problème

INSERT INTO table_test ('test') VALUES ('Là hautà');
// 0: SQLSTATE[HY000]: General error: 1406 Data too long for column 'test' at row 1

Idem pour les expressions régulière en PCRE, sauf que le "à" est refusé peu importe sa position. Par exemple si je veux n'importe quel caractère sauf un espace dans un champ de formulaire, je vais passer un validateur regex:

Code:

array('Regex', '`^[\P{Zs}]+$`')

Et bien "Làhaut" ne passe pas, alors que "léhaut&é"$^^¨ù%" passe.


C'est très bizarre tout ça. Je suppose que je suis pas le premier, mais je ne sais pas trop comment m'en sortir là, je cherche.

Merci,

A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#4 18-09-2009 14:09:10

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [MySQL 5.1.35]Bug caractère spéciaux "1406 Data too long for column"

Je n'ai pas de problème avec ta requète

Code:

% mysql -V    
mysql  Ver 14.14 Distrib 5.1.38, for portbld-freebsd7.2 (i386) using  5.2

Entre 5.0 et 5.1.38, y'a quand même un grand pas. Je te conseil donc de mettre à jour ton Mysql. Les versions X.0 ont souvent tendance à posséder des bugs

On peut  voir la structure de ta table ?


----
Gruiiik !

Hors ligne

 

#5 18-09-2009 14:19:26

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [MySQL 5.1.35]Bug caractère spéciaux "1406 Data too long for column"

Ok pour la BDD, mais quel rapport avec le regex ? surtout que c'est le même caractère qui pose problème le "à".

Tu es sous windows nORKy ?

A+

Dernière modification par Delprog (18-09-2009 14:34:05)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#6 18-09-2009 14:32:51

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [MySQL 5.1.35]Bug caractère spéciaux "1406 Data too long for column"

J'ai modifié le topic, en fait j'ai déjà la version 5.1.35

A+


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#7 18-09-2009 18:07:54

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: [MySQL 5.1.35]Bug caractère spéciaux "1406 Data too long for column"

nORKy a écrit:

for portbld-freebsd7.2 (i386) using  5.2

J'crois qu'il est sous free bsd wink

Hors ligne

 

#8 18-09-2009 18:14:19

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [MySQL 5.1.35]Bug caractère spéciaux "1406 Data too long for column"

Oui, au temps pour moi smile


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#9 23-09-2009 08:20:05

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [MySQL 5.1.35]Bug caractère spéciaux "1406 Data too long for column"

Oui, je suis suis FreeBSD smile (d'ailleurs, on a toujours pas PHP5.3 dans les ports, on vient juste de passé en 5.2.10 en 5.2.11)

Pour les regex, il me semble qu'il existe le modificateur /u  pour forcé le travaille sur unicode


----
Gruiiik !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages