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 :

Utilisation de COLLATE dans une requète préparée [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 29
    Par défaut Utilisation de COLLATE dans une requète préparée
    Bonjour,
    j'essaie de créer un espace membre. Je voudrais que lorsque la personne entre ses identifiants dans le formulaire d'ouverture de session, PSEUDO et pseudo ne soient pas équivalent. En clair, je voudrais qu'il y ait une distinction entre les minuscules et les majuscules mais je n'y parviens pas.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $req = $bdd->prepare('SELECT pseudo, pass FROM adherent WHERE pseudo = :pseudo collate French_CS_AS AND pass = :pass');
    	$req->execute(array(
    	':pseudo' => $_POST['pseudo'],
    	':pass' => $pass));
    Merci!!!!

  2. #2
    Membre éprouvé Avatar de Savak
    Homme Profil pro
    Ingénieur Etude et Développement
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur Etude et Développement

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Par défaut
    Bonjour!

    A mon avis, tu devrais jeter un coup d’œil à cette fonction php : strnatcmp()

    Cette méthode native de php permet de comparer deux chaines de caractères et est sensible à la casse.

    Bon courage!

  3. #3
    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
    C'est la colonne qui change d'interclassement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT pseudo, pass FROM adherent WHERE pseudo collate French_CS_AS = :pseudo  AND pass = :pass
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 29
    Par défaut
    Merci Sabotage, mais j'ai essayé ton code et ca me fait la mm chose qu'avant, j'obtiens mon message d'erreur comme quoi mon mot de passe ou mon pseudo n'est pas valide. Lorsque je n'utilise pas le collate, j'arrive à me connecter mais sans prendre en compte les majuscules et les minuscules.

  5. #5
    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
    French_CS_AS est un interclassement SQL Server et non Mysql ; tu utilises quel SGDB ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 29
    Par défaut
    Je suis sur PhpMyAdmin.

  7. #7
    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
    Donc Mysql.
    Si ta colonne a un interclassement UTF8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT pseudo, pass FROM adherent WHERE pseudo = COLLATE UTF8_bin :pseudo AND pass = :pass
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Comment utiliser des variables dans une requête SQL ?
    Par Ragnarok85 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 12/02/2007, 16h23
  2. [SQL] Utilisation de variables dans une requête SQL
    Par heteroclite dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/09/2006, 22h38
  3. utiliser un controle dans une Requête
    Par issam16 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/06/2006, 11h06
  4. Réponses: 4
    Dernier message: 16/02/2006, 16h28
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38

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