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 :

Syntaxe d'une requête a l'aide de PDO [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Points : 72
    Points
    72
    Par défaut Syntaxe d'une requête a l'aide de PDO
    Bonjour,
    J'ai un code
    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
     
    <?php
    	require_once('../config/config.inc.php');	
     
    		$response= array();
     
    		$sql = mysql_query("SELECT id, libelle  FROM siege where idagence='".$_POST['idAgence']."'");
     
    		while ($donnees = mysql_fetch_array($sql))
    		{
    			$response[$donnees['id']] = $donnees['libelle'];
    		}
    		mysql_free_result ($sql);
     
    	echo json_encode($response);
    	exit;
    ?>
    ce code fonction très bien sur mysql version 5.5.16 mais ça marche sur la version 5 .6.17

    j'ai modifié mon code en utilisant le PDO mais j'ai un problème avec la syntaxe de tableau et voila le code avec PDO
    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
     
    <?php
    	try
    {
    	$bdd =  new PDO('mysql:host=localhost;dbname=sondage;charset=utf8', 'root', '');
    }
    catch (Exception $e)
    {
            die('Erreur : ' . $e->getMessage());
    }
     
    	$reponse =array();
     
    	$reponse2= $bdd->query("SELECT id, libelle From seige where idagence='".$_POST['idAgence']."'");
    	while ($donnees = $reponse->fetch($reponse2))	{
    	    $reponse[$donnees['id']] = $donnees['libelle'];
    	}
    	mysql_free_result($reponse2);
     
    	echo json_encode($reponse);
    	exit;
    ?>

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut bingo06260.

    Voici un exemple très basique de ce que l'on peut faire avec le PDO. Je l'ai extrais d'un de mes programmes de test écrit en php.

    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
    24
    require_once("MySql_In.php");
     
    try {
    	$sql = $link->prepare("SELECT * FROM `tab_login` WHERE `login` = :param1 AND `password` = :param2");
     
    	$sql->bindParam('param1', $login, PDO::PARAM_STR);
    	$sql->bindParam('param2', $pswd,  PDO::PARAM_STR);
     
    	$sql->execute();
     
    	$enreg = $sql->fetch(PDO::FETCH_OBJ);
     
    	if ($enreg)	$reponse = "login + password sont correctes !";
    	else		$reponse = "le login ou le password sont incorrecte !";
    }
    catch ( Exception $e )
    {
    	echo "Une erreur est survenue dans la requète select : ", $e->getMessage();
    	die();
    }
     
    $sql->closeCursor();
     
    require_once("MySql_Out.php");
    Et voici le contenu de 'MySql_In.php'.
    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
    24
    25
    26
    27
    <?php
    /*-----------------------------------------------------*/
    /* Informations pour la connexion à la base de données */
    /*-----------------------------------------------------*/
     
    $nom_du_serveur  = "mysql:host=localhost;dbname=test";
    $nom_utilisateur = "test";
    $mot_de_passe    = "test";
     
    $options         = array(
    	PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES latin1",
    	PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    );
     
    /*----------------------*/
    /* Connexion au Serveur */
    /*----------------------*/
     
    try {
    	$link = new PDO($nom_du_serveur,$nom_utilisateur,$mot_de_passe, $options);
    }
    catch (Exception $e)
    {
    	echo "Connection à MySql impossible : ", $e->getMessage();
    	die();
    }
    ?>
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Modérateur
    Avatar de BakSh0
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 276
    Points : 1 271
    Points
    1 271
    Par défaut
    Bonjour,

    Tu fait une déclaration de tableau : $reponse = array(); mais après tu l'utilise comme un objet : $reponse->fetch(), il y'a déjà un soucis

    Sans tester voici normalement un truc qui (devrait) fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $reponse2=$bdd->query("SELECT id, libelle From seige where idagence='".$_POST['idAgence']."'");
    $reponse2->setFetchMode(PDO::FETCH_OBJ);
    while($data= $reponse2->fetch())
    {
            echo 'Libelle : '.$data->libelle.'<br>';
    }
    BakSh0, Modérateur .Net & Web

    Affichez la colorisation syntaxique dans votre code en ajoutant dans votre balise : [CODE=xxx] en remplaçant xxx par le nom du langage.


    N'oubliez pas de consulter les FAQs : .Net / Web et les cours et tutoriels .Net / Web

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

Discussions similaires

  1. Problème de syntaxe d'une requête
    Par Oulaoup dans le forum Access
    Réponses: 4
    Dernier message: 02/08/2017, 19h19
  2. [AC-2007] Besoin d'aide avec syntaxe d'une requête
    Par java250r dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 19/05/2012, 20h18
  3. Syntaxe d'une requête avec GROUP
    Par gvdmoort dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/10/2006, 15h10
  4. imiter une requête SQL à l'aide de la STL
    Par Kurisu dans le forum SL & STL
    Réponses: 17
    Dernier message: 11/09/2006, 23h51
  5. Erreur de syntaxe sur une requête paramétrée
    Par deglingo37 dans le forum Access
    Réponses: 5
    Dernier message: 16/05/2006, 22h21

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