PHP/SQL $_POST dans un INSERT INTO
Résoluservietsky777 Messages postés 256 Statut Membre -
J'essaie de faire fonctionner ce code mais je n'y arrive pas..
$bdd->exec('INSERT INTO comment(comment) VALUES($_POST['comment']) ');
J'espère que vous pourrez m'aider.
Merci d'avance
Bonne journée
7 réponses
Le problème porte sur l’exécution d’un INSERT en PHP utilisant $_POST['comment'], l’instruction INSERT INTO comment(comment) VALUES($_POST['comment']) provoquant des erreurs de syntaxe et un parse error. Plusieurs réponses insistent sur la nécessité d’entourer la valeur de $_POST['comment'] de guillemets dans la requête ou d’employer une concaténation correcte pour former une chaîne SQL valide. Des conseils mentionnent aussi l’usage des guillemets simples autour de la concaténation, ou l’adoption de requêtes préparées avec liaison de paramètres, afin d’éviter les erreurs de syntaxe et les injections. D’autres éléments évoquent des erreurs de syntaxe liées à des guillemets manquants ou à une mauvaise gestion de la concaténation, ce qui peut expliquer les messages d’erreur affichés.
-
oui si je fait echo $_POST['comment'] sa affiche.
L'erreur de la page avec le INSERT INTO c'est:
Parse error: syntax error, unexpected T_STRING in /data/web/5/1/monsite.org/htdocs/comment.php on line 22
La ligne 22 donc la ligne oú il y a le INSERT INTO. -
Salut,
si $_POST['comment'] est une string, ne pas oublier les guillemets !
$bdd->exec('INSERT INTO comment(comment) VALUES \'.$_POST['comment'].'\' '); -
-
tu t'es trompé dans tes cotes, c'est un double guillemet qu'il faut :
$bdd->exec("INSERT INTO comment(comment) VALUES($_POST['comment']) "); -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Avec les double guillemets j'ai:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /data/henry/web/5/1/buddhashop.toile-libre.org/htdocs/comment.php on line 22 -
Merci beaucoup pour toutes les réponses.
Une autre idée? Parce que jusque là rien ne fonctionne..-
-
-
Le code est bien sur la page comment.php ?
L'erreur est située ailleurs, et je pense même sur une autre page...
A quelle ligne est située le exit ?
Si avant 22, alors c'est sur que l'erreur est sur une autre page (sur la page comment.php par exemple ?). Sinon, c'est possible que ce soit ailleurs.
Utilise les exit, echo, print_r pour situer précisément un bug dont tu n'arrives pas à déterminer sa provenance. -
Le code est bien sur la page comment.php ?
OUI
L'erreur est située ailleurs, et je pense même sur une autre page...
non
A quelle ligne est située le exit ?
24
Si avant 22, alors c'est sur que l'erreur est sur une autre page (sur la page comment.php par exemple ?). Sinon, c'est possible que ce soit ailleurs.
L'erreur est sur la page comment.php
Utilise les exit, echo, print_r pour situer précisément un bug dont tu n'arrives pas à déterminer sa provenance.
L'erreur vient précisément du $_POST['comment'] car si je met autre chose que ça, par exemple \'test mot\' ,ça marche. -
-
-
Hello,
J'ai denouveau le même problème avec le WHERE.
Mon code:
$reponse = $bdd->query('SELECT user, password FROM compte WHERE user= :user'); $prep->bindValue(':user', $_POST['user'], PDO::PARAM_STR); $donnees = $reponse->fetch(); if($_POST['password'] == $donnees['password']){ echo 'test'; }