Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
Merci,
A+ benjamin.
Dernière modification par Delprog (18-09-2009 14:33:02)
Hors ligne
il faut que ce soit de l'UTF8 sur toute la chaine (php SQl Connexion et champs de la base)
A+JYT
Hors ligne
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:
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:
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.
Hors ligne
Je n'ai pas de problème avec ta requète
% 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 ?
Hors ligne
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)
Hors ligne
J'ai modifié le topic, en fait j'ai déjà la version 5.1.35
A+
Hors ligne
nORKy a écrit:
for portbld-freebsd7.2 (i386) using 5.2
J'crois qu'il est sous free bsd
Hors ligne
Oui, au temps pour moi
Hors ligne
Oui, je suis suis FreeBSD (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
Hors ligne
Pages: 1