Erreur incompréhensible en PHP

Résolu
hdiama Messages postés 190 Date d'inscription   Statut Membre Dernière intervention   -  
boly38 Messages postés 267 Date d'inscription   Statut Membre Dernière intervention   -
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. boly38 Messages postés 267 Date d'inscription   Statut Membre Dernière intervention   80
     
    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']);
    
    0
  2. hdiama Messages postés 190 Date d'inscription   Statut Membre Dernière intervention   6
     
    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
    0
    1. boly38 Messages postés 267 Date d'inscription   Statut Membre Dernière intervention   80
       
      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';
      0