Mysql
 sql >> Base de données >  >> RDS >> Mysql

S'il faut utiliser SET NAMES

mysql_set_charset() serait une option - mais une option limitée au ext/mysql . Pour ext/mysqli c'est mysqli_set_charset et pour PDO ::mysql vous devez spécifier un paramètre de connexion.

Comme l'utilisation de cette fonction entraîne un appel à l'API MySQL, elle doit être considérée comme beaucoup plus rapide que l'émission d'une requête.

En ce qui concerne les performances, le moyen le plus rapide d'assurer une communication basée sur UTF-8 entre votre script et le serveur MySQL est de configurer correctement le serveur MySQL. Comme SET NAMES x est équivalent à

SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;

alors que SET character_set_connection = x exécute également en interne SET collation_connection = <<default_collation_of_character_set_x>> vous pouvez également définir ces variables de serveur statiquement dans votre my.ini/cnf .

Soyez conscient des problèmes possibles avec d'autres applications exécutées sur la même instance de serveur MySQL et nécessitant un autre jeu de caractères.