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

Langage PHP Discussion :

passage à mysql pdo


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Par défaut passage à mysql pdo
    Bonjour,

    J'essaie de passer à mysql pdo, avec quelques difficultés.
    Je pars de ce morceau de code qui fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	$reponse = mysql_query("SELECT *  FROM `vocabulaire_anglais` WHERE `Francais` LIKE '%$requete_F%'") or die(mysql_error());
    	while ($donnees = mysql_fetch_array($reponse) )
    	{
    		$id = $donnees['id'];
    		$anglais = $donnees['Anglais'];
    		$francais = $donnees['Francais'];
    	echo "$anglais se traduit $francais";
           }
    J'essaie le plus simple !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $bdd->query("SELECT *  FROM `vocabulaire_anglais` WHERE `Francais` LIKE  '%$requete_F%'");
    Mais ça ne fonctionne pas.
    Je cherche un peu et je trouve ce genre de syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reponse = $bdd->query("SELECT *  FROM `vocabulaire_anglais` WHERE `Francais` LIKE  ?");
    $reponse->execute(array("%$requete_F%"));
    Qu'est-ce qui peut y avoir qui ne va pas ?

    Cordialement,

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Par défaut
    Je rectifie un peu ma demande:
    en fait ma deuxième tentative fonctionne, mais ce qui la fait foirer, c'est que j'essaie de compter le nombre de lignes que me donne ma requête avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $count = $reponse->rowCount();
    Comment faire ce décompte ?
    Cordialement,

  3. #3
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    tu ne prépares jamais tes requêtes ?
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $stmt = $bdd->prepare($sql);
    Je t'invite à lire la doc, car $stmt est un PDOStatement et il y a une petite info sur l'utilisation de rowCount() avec un SELECT ici

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Par défaut
    désolé, mais je n'y comprends vraiment rien!
    J'ai essayé de transposer l'exemple 2 de la page que vous m'indiquez, mais ça ne marche pas !

  5. #5
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    "préparer la requête" ça veut dire que tu donnes ta requête à analyser à ta base de donnée pour que celle-ci prépare le plan d’exécution de la requête, cad la façon optimale de récupérer les données.

    La préparation de la requête se fait sans donner les valeurs littérales par exemple au lieux d'écrire toto LIKE '%literal' on fait toto LIKE :value ou value représente une variable nommée qui sera évaluée (bind) au moment de l’exécution de la requete.

    D'ou les fonctions prepare et execute de l'api PDO.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Par défaut
    Merci d'avoir cette patience
    Oui, je pensais avoir compris cela, mais je n'arrive pas à le refaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    try
    {
     
     
    $bdd = new PDO('mysql:host=localhost;dbname=loupiote', 'root', '*******', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
    	$bdd->query("set character set 'utf8'");//for using utf-8
    }
    catch (Exception $e)
    {
            die('Erreur : ' . $e->getMessage());
    }
    $requete_F=$_POST['requete_F'];
    echo "#$requete_F#<br>";
    /* Exécute une requête préparée en passant un tableau de valeurs */
    $reponse = $bdd->prepare("SELECT *  FROM `vocabulaire_anglais` WHERE `Francais` LIKE :requete_F");
    $reponse->execute(array(':requete_F' => "%$requete_F%"));
    while ($donnees = $reponse->fetchAll());
    {		$anglais = $donnees['Anglais'];
    		$francais = $donnees['Francais'];
    echo "$anglais se traduit par $francais";
    }
    ?>
    Il doit y avoir quelque chose qui cloche, parce que ça ne marche pas

Discussions similaires

  1. [PHP 5.4] passage Mysql à Sql Serveur
    Par gilles_906 dans le forum Langage
    Réponses: 18
    Dernier message: 24/10/2012, 16h33
  2. Problème scriptella passage Mysql à SQLServer
    Par jocqfd dans le forum Administration
    Réponses: 7
    Dernier message: 18/01/2010, 14h59
  3. [PHP 5.3] SQL MySQL PDO
    Par éric1 dans le forum Langage
    Réponses: 8
    Dernier message: 20/08/2009, 11h20
  4. [PDO] MySQL, PDO et serialize()
    Par juJuv51 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/02/2008, 17h13

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