IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

utf-8 me cause des soucis.


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par défaut utf-8 me cause des soucis.
    Comme du code vaut souvent mieux qu'un long discours, voici ce qui me pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		$this->conn = mysql_connect($host,$user,$passwd) or txt_log('Impossible de se connecter a la bdd  : '.mysql_error($this->conn),'sql.txt');
    		mysql_set_charset('utf8',$this->conn);
    		$this->query("SET NAMES 'utf8'");
    		mysql_select_db($db_name,$this->conn) or txt_log('Impossible de se connecter a la bdd  : '.mysql_error($this->conn),'sql.txt');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function &query($sql){
    		$this->nbQuery++;
    		txt_log(mb_detect_encoding($sql.'a').' '.$this->nbQuery.' => '.$sql,'sql.txt');
    		$this->result = mysql_query($sql,$this->conn) or txt_log($this->nbQuery." $sql : ".mysql_error($this->conn),'sql.txt');
    		return $this->result;
    	}
    Tout ceci est donc supposé fonctionner en utf-8 . J'essaye de faire passer la requete suivante dans ce bazard :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    replace into user(id,login,pass,nom,prenom,addr,tel,cp,ipInscr,mail,etat,dateInscr) values(21,'login','729f2d8b3d3d9bc07ba349faab7fdf44','nom','prénom','','0500000000','10000','127.0.0.1','email@email.com',0,1215611253)

    Tous les champs de la table user sont configurés pour utiliser utf-8 ainsi que la table elle même. Or, dans le cas suivant, le champ prénom vaut 'pr' après l'exécution de la requête. Aucune erreur n'est levée. Le log indique bien que la chaine $sql est une utf-8 . Bref, je cale totalement !

    Comment utiliser utf-8 avec php et mysql de façon efficace ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par défaut
    Enlever mysql_set_charset('utf8',$this->conn); et $this->query("SET NAMES 'utf8'");

    Et les insertions fonctionnent. Des idées ?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par défaut
    Hum, cette configuration marche dans un sens, mais je reçoit tout de même les résultats en autre chose qu'utf8 . Bref, ça ne marche que pour envoyer des données.

    Vraiment personne n'a d'idées ?

Discussions similaires

  1. #include bidirectionnel cause des problèmes
    Par matrox dans le forum C++
    Réponses: 4
    Dernier message: 21/06/2006, 16h46
  2. [VB6]Problème dajout dans une Table Access à cause des group
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/02/2006, 10h06
  3. Problème d'addition à cause des NULL
    Par Oluha dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/03/2005, 13h53
  4. J'ai des soucis avec Delphi8 ShellExecute...
    Par manu00 dans le forum Delphi .NET
    Réponses: 6
    Dernier message: 25/07/2004, 08h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo