Probleme avec une requete select en php

Résolu/Fermé
hugo - 11 janv. 2021 à 13:00
jordane45 Messages postés 38320 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 novembre 2024 - 11 janv. 2021 à 14:05
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

jordane45 Messages postés 38320 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 novembre 2024 4 707
11 janv. 2021 à 13:21
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
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
jordane45 Messages postés 38320 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 novembre 2024 4 707 > hugo
11 janv. 2021 à 14:05
Autre question, Autre langage ... donc merci de créer une nouvelle discussion propre à ce nouveau "souci" dans le forum adéquat ( javascript )
0