Problème SQL et PHP

phpwebh
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 17
Inscription: 17 Juil 2008

Problème SQL et PHP

Message le Dim Juil 20, 2008 19:23

Bonjour,

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

Erreur de syntaxe près de '@hotmail.fr, 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.


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3827
Inscription: 14 Sep 2006

Message le Dim Juil 20, 2008 19:27

Salut, essaie :

Code: Tout sélectionner
$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:

phpwebh
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 17
Inscription: 17 Juil 2008

Message le Dim Juil 20, 2008 20:05

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


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3827
Inscription: 14 Sep 2006

Message le Dim Juil 20, 2008 20:11

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

@+

phpwebh
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 17
Inscription: 17 Juil 2008

Message le Dim Juil 20, 2008 20:18

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 !

petit-ourson
WRInaute impliqué
WRInaute impliqué
 
Messages: 855
Inscription: 31 Mai 2004

Message le Dim Juil 20, 2008 20:32

YoyoS a écrit:- Il faut veiller à ce que les guillemets ou côtes soient bien échapés (fonction addslashes), j'imagine que c'est fait avant.

Ou plutôt : mysql-real-escape-string (http://fr.php.net/manual/fr/function.my ... string.php)


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3827
Inscription: 14 Sep 2006

Message le Dim Juil 20, 2008 22:40

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 ;)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité