Bonjour,
Mon hébergeur (j'ai déjà envoyé plein de messages) a fait des changements et depuis dans la colonne interclassement il y a par défaut 'latin1_swedish_ci'. Il m'est alors impossible d'exécuter des requêtes du style:
select * from `table` where champ like '%mot%' ou
select * from `table` where champ='mot'
sachant que champ est un varchar(255)!
J'obtiens alors l'erreur
#1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
Alors je me suis dit qu'il fallait affecté l'interclassement de toutes mes tables avec la valeur "utf8_general_ci". J'ai utilisé le script suivant:
Toutes mes tables ont l'interclassement utf8_general_ci mais je n'arrive toujours pas à changer celui des champs varchar.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //connexion etc.. $nbtab = mysql_list_tables ($DB,$db_link); while ($i < mysql_num_rows ($nbtab)){ $table = mysql_tablename ($nbtab, $i); $req=mysql_db_query($DB,"ALTER TABLE ".$table." DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci",$db_link) or die(mysql_error()); $i++; }
HELP!
Questions:
-Est ce qu'il faut bien changer l'interclassement en utf8_general_ci ?
-Si oui, comment l'affecter à tous les champs ?
Merci beaucoup,
LTN
Partager