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 :

Requete préparer avec MYSQLI et PDO


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Par défaut Requete préparer avec MYSQLI et PDO
    Bonjour

    Je tante d'effectuer une requête préparer qui me cause des petit souci de compréhension
    J'étais partit sur ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
         public static function login($email,$password){
            $cnx = Singleton::getInstance(self::MODULE);
            $stm= $cnx->prepare("SELECT * FROM utilisateur WHERE email=:email and password=:password");
            $stm->bind_param(":email",$email);
            $stm->bind_param(":password",$password);
            $stm->execute();
     
     
         }
    Mais après quelque recherche j'ai vue qu'il fallait procédé de manière totalement différente

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // prepare and bind
    $stmt = $mysqli -> prepare("SELECT * FROM utilisateur WHERE email=? and password=?");
    $stmt -> bind_param("ss", $email, $password);
    une personne peut elle m'expliquer à quoi correspond la string "ss" svp?
    J'ai l'impression que c'est pour désigner les paramètre comme string.
    Si c'est le cas peut on maitre :email ou remplacer leur position par des 1 ou 2.

    Puis-je aussi remplasser les ? par :emal et :password

    Peut-on écrire la suite comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
        $stm->bind_result($district);
     
     
       $re =  $stm->fetch();
    désolé

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 33

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Par défaut
    Citation Envoyé par Shooter Voir le message
    C'est gentil mais j'étais déjà dessus et la doc ne m'aide pas beaucoup plus pour mysqli.
    Je comprend que PDO fonctionne différemment avec mysql et mysqli et que je ne peux pas passer mes params comme ceci :param, il faudra obligatoirement ? dans la requête et idem dans la fonction bind_param il faudra mettre "s" que je suppose être pour une string vue que je ne trouve pas la réponse.

    Pour la suite de ma requête je vais continuer a creuser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $cnx = Singleton::getInstance(self::MODULE);
            $stm= $cnx->prepare("SELECT * FROM utilisateur WHERE email=?");
            $stm->bind_param("s",$email);
            //$stm->bind_param(":password",$password,PDO::PARAM_STR);
            $stm->execute();
     
           while($res = $stm->fetch()!=false){
               var_dump($res["email"]);
               $data[] = new Utilisateur($res["email"],$res["password"]);
           }
          var_dump($data);

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    une personne peut elle m'expliquer à quoi correspond la string "ss" svp?
    C'est pour désigner le type des paramètres => https://www.php.net/manual/fr/mysqli...bind-param.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Caractère	Description
    i	correspond à une variable de type entier
    d	correspond à une variable de type nombre décimal
    s	correspond à une variable de type chaîne de caractères
    b	correspond à une variable de type BLOB, qui sera envoyé par paquets
    Puis-je aussi remplasser les ? par :emal et :password
    Pas avec mysqli

    Pourquoi passer par mysqli et pas PDO ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur JAVA & PHP
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur JAVA & PHP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Par défaut
    Citation Envoyé par Séb. Voir le message
    C'est pour désigner le type des paramètres => https://www.php.net/manual/fr/mysqli...bind-param.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Caractère	Description
    i	correspond à une variable de type entier
    d	correspond à une variable de type nombre décimal
    s	correspond à une variable de type chaîne de caractères
    b	correspond à une variable de type BLOB, qui sera envoyé par paquets

    Pas avec mysqli

    Pourquoi passer par mysqli et pas PDO ?
    Parce que j'avais le nez dans le guidon et que je pensais qu'à cela.
    Merci du coup je me connecte avec PDO.
    Je te remercie aussi de m'avoir renseigné.
    Faut que j'apprenne a prendre du recule.

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

Discussions similaires

  1. [PDO] requete INSERT avec PDO
    Par skypred dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/06/2016, 15h41
  2. [PDO] Requete UPDATE avec PDO fonctionnelle en local mais pas sur OVH
    Par olinet dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/12/2014, 14h57
  3. [MySQL] requete préparer avec un in
    Par keokaz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/03/2013, 00h01
  4. [PDO] Sous-requete (mysql) avec PDO
    Par PrettyMan dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/03/2013, 14h39
  5. requete SELECT avec un nombre constant
    Par gurumeditation dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/07/2003, 20h04

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