Pb avec un insert into

Résolu
cs_ethan94 Messages postés 27 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 15 juin 2010 - 30 mars 2008 à 13:26
cs_ethan94 Messages postés 27 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 15 juin 2010 - 30 mars 2008 à 14:24
Bonjour :)

Je crée un site en html/php et je voudrais que les visiteurs puissent s'inscrire. Pour celà, j'ai crée un formulaire d'inscription et j'essaie de créer la requête sql qui enregistrera l'utilisateur dans la base de donnée. Après un premier test, j'ai obtenu cette erreur:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Program Files\wamp\www\site\register.php on line 63

Je vous copie le code de ma page:

                $log = $_POST['login'];
                $pwd = $_POST['pwd'];
                $nom = $_POST['nom'];
                $prenom = $_POST['prenom'];
                $adr = $_POST['adresse'];
                $cp = $_POST['cp'];
                $ville = $_POST['ville'];
                $mail = $_POST['mail'];
               
                $req = mysql_query("insert into membre values(".$log.",".$pwd.",".$nom.",".$prenom.",".$adr.",".$cp.",".$ville.",".$mail")";");
                $result = execute($req);

Je ne sais pas ou se trouve l'erreur. Autre chose, je ne suis pas sur que la dernière ligne soit bonne...
Merci pour votre aide :)

6 réponses

yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 1
30 mars 2008 à 13:43
Salut,

Tout d'abord ton script ne fonctionnera jamais, les valeurs sql doivent être entouré de guillemets.

Ton erreur est la:
$req = mysql_query("insert into membre values(".$log.",".$pwd.",".$nom.",".$prenom.",".$adr.",".$cp.",".$ville.",".$mail .");" );

Mais pour que ça fonctionne tu dois faire plutôt ça:

$req = mysql_query("insert into membre values('
$log'
,'
$pwd'
,'
$nom'
,'
$prenom'
,'
$adr'
,'
$cp'
,'
$ville'
,'
$mail'
);");

De plus, tu devrais échapper tes chaines mais bon ça ne concerne pas ton problème :).

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 mars 2008 à 13:44
Hello,

toutes les valeurs de type chaînes dans ta base doivent être insérées avec des apostrophes :
INSERT INTO matable (ChampTexte) VALUES ('valeur')
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 mars 2008 à 14:03
Ben oui, la fonction execute() n'existe pas en php. D'où la sors-tu ?
mysql_query() exécute déjà la requête.
3
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 1
30 mars 2008 à 13:44
J'ai dit guillemets, je voulais plutot dire apostrophes..

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
0

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

Posez votre question
cs_ethan94 Messages postés 27 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 15 juin 2010
30 mars 2008 à 14:01
Merci pour votre aide :)
Cette erreur là est réparée. Maintenant, j'ai une autre erreur. Une fois le formulaire rempli et lorsque je clique sur "envoyer"
j'ai ce message:

Fatal error: Call to undefined function execute() in C:\Program Files\wamp\www\site\register.php on line 64

la ligne 64, c'est celle-ci: $result = execute($req);
0
cs_ethan94 Messages postés 27 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 15 juin 2010
30 mars 2008 à 14:24
ah ok : / je l'ai trouvé dans un topic sur internet, je pensais que c'était bon ^^
Merci :)

L'enregistrement fonctionne bien maintenant :) Merci pour votre aide ^^
0