Bien utiliser mysql_query('SET NAMES UTF8')

Signaler
Messages postés
73
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
17 janvier 2012
-
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
-
Bonjour,

Mon site ramant un peu j'ai fait une analyse de performances et voici deux conclusions :
- 30,9 % du temps d'exécution est passé dans la requête mysql_connect($this->host,$this->utilisateur,$this->motdepasse);
- 29,8 % du temps d'exécution est passé dans la requête mysql_query('SET NAMES UTF8');
Ca m'embête beaucoup car je ne vois pas du tout comment supprimer ces fonctions... Si mysql_connect mange tant de durée c'est parceque c'est fait à chaque requête MySQL : en effet toutes les requêtes ne sont pas envoyées à la même base de données.
Pour ce qui est de mysql_query('SET NAMES UTF8'); c'est également fait pour chaque requête, mais est-ce vraiment nécessaire ? Il faut savoir qu'une pour chaque requête : on se connecte à la bonne base de donnée, je fais un mysql_query('SET NAMES UTF8'); et la requête est envoyée puis on ne se déconnecte pas.
C'est un PB épineux pour moi j'espère que vous saurez me conseiller.
Merci beaucoup,

KJM

2 réponses

Messages postés
73
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
17 janvier 2012

Pour info :
Dans ma page HTML on a <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />, la plupart de mes champs de BDD sont en utf8_unicode_ci mais il y en a certains en utf8_unicode_ci
Merci

KJM
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
12
Tu peux stocker l'id de ta connexion dans une variable pour ne pas ouvrir/fermer sans arrêt les BDD ...
mysql_query('SET NAMES UTF8'); permet de dire à MySQL que les chaines dans les SQL sont en UTF8 et pas en ANSI.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question