Problème SQL et PHP

Nouveau WRInaute
Bonjour,

J'ai besoin de votre aide une erreur s'affiche dans ma page:

Erreur de syntaxe près de [email='@hotmail.fr]'@hotmail.fr[/email], test, , Monsieur, dupond, gerard, 17 Ave' à la ligne 2

voici mon code:


$sql= "INSERT INTO membres ( `ID` , `mail` , `mdp` , `code` , `civilite` , `nom` , `prenom` , `adresse` , `ville` , `cp` , `tel` )
VALUES (NULL, $mail, $mdp, $code, $civilite, $nom, $prenom, $adresse, $ville, $cp, $tel)";

$requete = mysql_query($sql) or die( mysql_error() ) ;


Avez vous une idée du problème ?

Merci par avance pour votre aide.
 
WRInaute accro
Salut, essaie :

Code:
$sql= "INSERT INTO membres (mail , mdp , code , civilite , nom , prenom , adresse , ville , cp , tel )
VALUES ('".$mail."', '".$mdp."','". $code."', '".$civilite."', '".$nom."','". $prenom."','". $adresse."', '".$ville."', ".$cp.", ".$tel.")";

- Il faut veiller à ce que les guillemets ou côtes soient bien échapés (fonction addslashes), j'imagine que c'est fait avant.
- Pas la peine de mettre ID et NULL, tu risques de produire une erreur plus qu'autre chose. Le système le gère tout seul vu que tu l'as normalement mis en incrémentation automatique.
- Pas la peine des "`", tu t'emmerdes pour rien.
- Essaie de concaténer les variables et pas les taper en vrac -> gain de temps d'exécution.
- Obligation de mettre des côtes pour les chaines de caractères, facultatif pour les chiffres.

Voila, on voit que tu t'es bien renseigné avant de demander, bravo :roll: Quand je pense que c'est un forum pour les rois des moteurs de recherche :mrgreen:
 
Nouveau WRInaute
Cela fonctionne, merci.

Ps: je ne suis pas le roi de la recherche, si c'était le cas je ne serait pas venu, dommage ces commentaires.

@Bientot
 
WRInaute accro
Non c'était juste pour t'inciter à aller lire des articles sur la requête INSERT mysql en faisant une petit recherche sur google pourquoi pas, mais c'est plus facile pour toi de poser la question je comprends 8) Rien de méchant en tout cas :D

@+
 
Nouveau WRInaute
Je t'avoue que je me suis pris la tête une bonne partie de l'aprem, et comme je suis sur un gros projet je peux pas perdre 1journée sur un truc si bête.

En tout cas tu m'as aidé, donc merci !
 
WRInaute accro
A oui en effet, ta fonction donne directement un résultat prêt pour la fonction mysql_query alors que addslashes ne s'occupe pas des caractères spéciaux.

Merci à toi ;)
 
Discussions similaires
Haut