Probleme avec une requete select en php [Résolu]

Signaler
-
Messages postés
31027
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2021
-
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

Messages postés
31027
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2021
3 179
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();

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 ?
Messages postés
31027
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2021
3 179 > hugo
Autre question, Autre langage ... donc merci de créer une nouvelle discussion propre à ce nouveau "souci" dans le forum adéquat ( javascript )