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 :

Requête avec paramètre en caractères spéciaux [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Par défaut Requête avec paramètre en caractères spéciaux
    Bonjour,

    J'ai remarqué que PHPMyAdmin arrive à interpréter les caractères spéciaux de sa requête. Par contre quand j'exécute cette même requête dans du PHP le résultat est différent. Il dois peut être y avoir un problème dans mon code.
    Si quelqu'un peut m'aider merci.

    My sql va m'afficher 1 en utilisant le caractère spécial "é" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT( * ) AS nbr FROM tbl_user WHERE account = 'é';
    PHP va m'afficher 0 en utilisant le caractère spécial "é" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      $sql  = "SELECT COUNT(*) AS nbr FROM tbl_user WHERE account = 'é'";
      $res  = mysql_query($sql);
      $alors = mysql_fetch_assoc($res); 
      mysql_close();
      echo  $alors['nbr']; //affiche 0 car pas trouvé
    Par contre les deux affichent bien 1 si je met un caractère simple :

    My sql va m'afficher 1 en utilisant le caractère spécial "d" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT( * ) AS nbr FROM tbl_user WHERE account = 'd';
    PHP va m'afficher 1 en utilisant le caractère spécial "d" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      $sql  = "SELECT COUNT(*) AS nbr FROM tbl_user WHERE account = 'd'";
      $res  = mysql_query($sql);
      $alors = mysql_fetch_assoc($res); 
      mysql_close();
      echo  $alors['nbr']; //affiche 1

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Essaie de faire lancer la requere "SET NAMES 'UTF8'" avant tes requetes PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Par défaut
    Merci pour ta réponse, je me suis renseigné sur internet mais je ne vois pas où le plaçer le "mysql_query("SET NAMES, 'utf8'");", par rapport à mon code précédent, je le placer à quel endroit ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SET NAMES 'utf8'");
    sans virgule

    Le parametre est pris en compte pour toutes les requetes suivantes. Tu la fais n'importe ou du moment que c'est avant l'autre requete.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Par défaut
    Merci, pour ton aide. J'ai fais pas mal de testes et finalement, je n'ai pas réussi à gérer les accents. J'ai modifié les types d'encodage dans le base de donnée puis dans la page mais ça ne fonctionne pas.

    Donc je suis resté en ISO-8859-1 qui me convient et j'ai empêché l'ajout de donnée avec accents pour comparer mes données plus facilement.

    Ca m'a permis de mieux comprendre les encodages et leur limites.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Requête][03]Problème d'export d'une requête avec paramètre
    Par SLE dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 02/04/2007, 11h29
  2. Réponses: 5
    Dernier message: 06/01/2007, 04h48
  3. [Requête VBA] Gèrer les caractères spéciaux comme [ ' ]
    Par snoopy69 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 17/07/2006, 15h32
  4. [Oracle] - Requête avec paramètres
    Par b00tny dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/04/2006, 16h09
  5. test d'une requête avec paramètre
    Par hervé14670 dans le forum Access
    Réponses: 1
    Dernier message: 12/01/2006, 22h45

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