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:

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++;
}
Toutes mes tables ont l'interclassement utf8_general_ci mais je n'arrive toujours pas à changer celui des champs varchar.

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