Erreur incompréhensible en PHP

Résolu
hdiama Messages postés 188 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!


A voir également:

2 réponses

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
hdiama Messages postés 188 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
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