PHP/SQL $_POST dans un INSERT INTO

Résolu
servietsky777 Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   -  
servietsky777 Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
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
A voir également:

7 réponses

servietsky777 Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   7
 
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.
1
Meoran Messages postés 1562 Date d'inscription   Statut Membre Dernière intervention   207
 
Salut,

si $_POST['comment'] est une string, ne pas oublier les guillemets !

 $bdd->exec('INSERT INTO comment(comment) VALUES \'.$_POST['comment'].'\' '); 
1
servietsky777 Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   7
 
Questin débile:

Pourquoi tu met des points \'.$_POST['comment'].'\
0
Meoran Messages postés 1562 Date d'inscription   Statut Membre Dernière intervention   207
 
Pour la concaténation de strings.

C'est comme ça qu'elle se fait en php.
0
Meoran Messages postés 1562 Date d'inscription   Statut Membre Dernière intervention   207
 
Da'illeurs il manque un guillemet :

 $bdd->exec('INSERT INTO comment(comment) VALUES \' '.$_POST['comment'].'\' ');
0
servietsky777 Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   7
 
Sa me met tjr la même erreur T_T
0
Meoran Messages postés 1562 Date d'inscription   Statut Membre Dernière intervention   207
 
Il manquait un guillemet ;)
0
Templier Nocturne Messages postés 7734 Date d'inscription   Statut Membre Dernière intervention   1 106
 
il y a bien une valeur dans ton POST ?
0
Templier Nocturne Messages postés 7734 Date d'inscription   Statut Membre Dernière intervention   1 106
 
tu t'es trompé dans tes cotes, c'est un double guillemet qu'il faut :

$bdd->exec("INSERT INTO comment(comment) VALUES($_POST['comment']) ");
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
servietsky777 Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   7
 
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
0
Templier Nocturne Messages postés 7734 Date d'inscription   Statut Membre Dernière intervention   1 106
 
et si tu vire le POST de ta requête en remplaçant par une autre variable ?
$lala = 'lala';
$bdd->exec("INSERT INTO comment(comment) VALUES($lala) ");  
0
servietsky777 Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   7
 
Tu veux dire quelque chose comme ça?

$temp = $_POST['comment'];
$bdd->exec("INSERT INTO comment(comment, date) VALUES($temp, NOW()) ");
0
Templier Nocturne Messages postés 7734 Date d'inscription   Statut Membre Dernière intervention   1 106
 
oui, par exemple, mais si ça ne marche pas, essaye avec une variable définie "normalement" ($lala = 'lala')
0
servietsky777 Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   7
 
ça sa ne marche pas..

$temp = $_POST['comment'];
$bdd->exec("INSERT INTO comment(comment, date) VALUES($temp, NOW()) ");
0
servietsky777 Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   7
 
Merci beaucoup pour toutes les réponses.

Une autre idée? Parce que jusque là rien ne fonctionne..
0
Meoran Messages postés 1562 Date d'inscription   Statut Membre Dernière intervention   207
 
$Requete = ('INSERT INTO comment(comment) VALUES \'.$_POST['comment'].'\' ');  

echo $Requete;
exit;


Je veux juste voir ce que contient réellement la requete. Pas besoin d 'aller au bout du script.
0
servietsky777 Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   7
 
Quand je met ton code j'obtient ça.

Parse error: syntax error, unexpected T_STRING in /data/henry/web/5/1/buddhashop.toile-libre.org/htdocs/comment.php on line 22
0
Meoran Messages postés 1562 Date d'inscription   Statut Membre Dernière intervention   207
 
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.
0
servietsky777 Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   7
 
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.
0
Meoran Messages postés 1562 Date d'inscription   Statut Membre Dernière intervention   207
 
Utilises tu les exceptions avec PDO ?

Essaye ceci (mais j'aime pas parce que pas propre ) :

 $bdd->exec("INSERT INTO comment(comment) VALUES  '$_POST['comment']\' ");
0
servietsky777 Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   7
 
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';
}
0