Erreur incompréhensible en PHP

Résolu
Bonjour,

J'ai passé des heures dessus mais nada, je ne sais pas...

Voilà ce que j'obtiens comme message d'erreur:

Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '===$_POST['mot']' at line 1

Je pense que les lignes concernées sont celles qui contiennent:

$bdd->query('SELECT * FROM table where mots_cles===$_POST[\'mot\']');

Quelqu'un saurait la cause de cette erreur?

D'avance merci!

2 réponses

  1. passe par une variable intermédiaire !

    Tente quelque chose dans le style suivant :
    $mot = $_POST['mot'];
    $bdd->query("SELECT * FROM table where mots_cles === '$mot'"); 
    


    Il faudrait aussi se protéger des "injections SQL" si ici la variable "mot" provient d'une saisie utilisateur, avec par exemple :
    $mot = mysql_real_escape_string($_POST['mot']);
    
    1. Merci pour ta réponse, et bonne remarque pour les injections SQL :)

      mais j'ai toujours l'erreur:

      Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '==$mot' at line 1
      1. ta chaîne de caractères est-elle encadrée par des "guillemets" ou des 'apostrophes' ?

        car les apostrophes ne permettent pas le remplacement des variables :
        $myString = "$mavar sera remplacée ici";
        $myString = '$mavar ne sera pas remplacée ici';
        $myString = $mavar . ' sera concaténée ici';