Se connecter avec
S'enregistrer | Connectez-vous

[PHP] Erreur requette SQL, je pige pas

Dernière réponse : dans Programmation

Bonjour, voila, je développe un site sur lequel il y a un formulaire d'inscription. je l'ai essayer et lorsque j'envoi le formulaire la base de donnée me répond :

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 '@free.fr, XXX ..." on line 1

Si sa peut aider, voila le code qui compose ma requette :
  1. // Définitions des portions de requette
  2. $libel="login, pass, nom, prenom, email, emailvisible, adresse, codepostal, ville, fixe, mobile, telvisible, sexe, naissance, siteweb, nb_messages, mailrepsuj, mailmsg";
  3. $var="$login, $pass, $nom, $prenom, $email, $emailvisible, $adresse, $codepostal, $ville, $fixe, $mobile, $telvisible, $sexe, $naissance, $siteweb, $mailrepsuj, $mailmsg";
  4. // Exécution de la requette SQL
  5. if (!mysql_query("INSERT INTO membres ($libel) VALUES ($var)")){
  6. echo "La base de donnée est temporairement innaccessible, merci de reitérer votre demande dans quelques instants.";
  7. echo mysql_error();
  8. return 0;
  9. }


une idée?

merci d'avance
@++
fab

Autres pages sur : php erreur requette sql pige

Lassé par la pub ? Créez un compte

Oui j'ai bien échapper toutes mes variables
d'ailleur j'ai l'impression que la fonction mysql_real_escape_string déraille sévère :
dans le nom de la ville j'ai mis 1 apostrophe, dans ma requête SQL j'ai 7 anti slash devant cette apostrophe et pourtant je ne l'échape qu'une fois...
Expert Programmation

$var="$login, $pass, $nom, $prenom, $email, $emailvisible, $adresse, $codepostal, $ville, $fixe, $mobile, $telvisible, $sexe, $naissance, $siteweb, $mailrepsuj, $mailmsg";


Ici, tu n'utilises pas tes variables... Simplement du texte...



Ecrit plutot ceci :

$var="".$login.", ". $pass .", ". $nom .", ". $prenom .", ". $email .", ". $emailvisible .", ". $adresse .", ". $codepostal .", ". $ville .", ". $fixe .", .". $mobile .", ". $telvisible .", ". $sexe .", ". $naissance .", ". $siteweb .", ". $mailrepsuj .", ". $mailmsg."";

C'est la même chose vus que c'est entre double quote...
la preuve, j'ai essayer un
  1. echo $var;

et sa me retourne bien les valeurs contenue par ses variables et non le nom de ces variables.

Même la requete prouve que sa marche puisqu'elle me retourne syntax error near "@free.fr,oui,quartier des machins,01234,trous sur mers, ..."

donc le problème ne viens pas de la...

j'ai l'impression que ceu qui le gène c'est la présence du @,
non?

merci pour vos réponses
Lassé par la pub ? Créez un compte
Tom's guide dans le monde