Probleme avec une requete select en php

Résolu
hugo -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
J'ai un problème avec ma requête select, quand je veux mettre un where dans celle ci ca ne marche pas

requête qui fonctionne :

        $resultats = $bdd->query("SELECT * FROM chat ORDER BY id DESC LIMIT 30");

        $messages = $resultats->fetchAll();

        var_dump($messages);



et quand je rajoute where pouf ca marche pas ;'(


$destination = xpersonne;

        $resultats = $bdd->query("SELECT * FROM chat WHERE destination = :destination ORDER BY id DESC LIMIT 30");
        $resultats->bindValue(':destination',$destination);

        $messages = $resultats->fetchAll();

        var_dump($messages);



j'ai tester de faire des
var_dumb($messages);


Select 1 :

ca me donne toutes les données

Select 2 :

l'erreur est la suivant

Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ':destination ORDER BY id DESC LIMIT 30' à la ligne 1 in C:\wamp64\www\html\ltr\php\test.php on line 12
( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ':destination ORDER BY id DESC LIMIT 30' à la ligne 1 in C:\wamp64\www\html\ltr\php\test.php on line 12

ligne 12 est la ligne de la requête

1 réponse

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    Il ne faut pas utiliser la méthode QUERY mais PREPARE lorsque tu veux Binder des variables.
    Puis EXECUTE pour exécuter la requête

    Exemple (issu de la doc de php)
    /* Exécute une requête préparée en associant des variables PHP */
    $calories = 150;
    $couleur = 'rouge';
    $sth = $dbh->prepare('SELECT nom, couleur, calories
        FROM fruit
        WHERE calories < :calories AND couleur = :couleur');
    $sth->bindValue(':calories', $calories, PDO::PARAM_INT);
    $sth->bindValue(':couleur', $couleur, PDO::PARAM_STR);
    $sth->execute();
    

    0
    1. hugo
       
      Effectivement ca fontionne j'ai une petite question par la qui traine comment mettre une variable dans un zone de texte en js

      ex :

      
      const author_id = document.querySelector('#author');
      
      requeteAjax.open("GET", "../php/chat.php?destination=${author_id}");
      
      


      comment mettre l'id dans le lien ?
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > hugo
         
        Autre question, Autre langage ... donc merci de créer une nouvelle discussion propre à ce nouveau "souci" dans le forum adéquat ( javascript )
        0