erreur sur ma requette

Petit nouveau ! | 1 Messages

12 juin 2021, 20:55

bonjour a tous voila je suis debutant et je voudrais me lancer sur du php et la je but j espere que vous pourrez m aider meri voila mon probleme j'ai j ai fais un systeme de commentaitaire et je voudrai recuperer le message a repondre et pour cela j ai fais cette requette mais bon j ai une erreur au niveau de mon array
$sql="SELECT * FROM commentaires WHERE id=? ORDER BY datepost DESC";
        $result=mysqli_query($db,$sql(array($_GET['id']))) or die("mauvaise requette".mysqli_error($db));
        while ($row=mysqli_fetch_assoc($result)){?>
merci de votre aide

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

14 juin 2021, 11:00

Si tu mets un ? dans ta requête, c'est que c'est une requête préparée et du coup ça ne se fait pas avec mysqli_* mais avec PDO.
Mysqli et PDO sont deux manières d'interagir avec une base de données SQL, mais tu ne peux pas mixer les deux.

Donc soit PDO :

Soit tu restes avec Mysqli et alors pour insérer ta variable dans ta requête il faut :
1) la filtrer pour éviter de te faire pirater, avec filter_var : https://php.net/filter_var
2) et ensuite concaténer ta variable filtrée dans ta requête SQL : http://www.lephpfacile.com/cours/5-conc ... ux-chaines (cf exemple 2)
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 2703 Messages

14 juin 2021, 13:30

Si tu mets un ? dans ta requête, c'est que c'est une requête préparée et du coup ça ne se fait pas avec mysqli_*
si si https://www.php.net/manual/fr/mysqli.prepare.php

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

15 juin 2021, 10:07

Ah bah tiens, à force d'utiliser PDO je croyais que ce n'était présent que dedans !
J'aurai appris quelque chose aujourd'hui, merci Or1 !
Quand tout le reste a échoué, lisez le mode d'emploi...