Problème SQL et PHP

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

phpwebh
Nouveau WRInaute
 
Messages: 17
Inscription: Jeu Juil 17, 2008 13:45

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: 3062
Inscription: Jeu Sep 14, 2006 4:53

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
 
Messages: 17
Inscription: Jeu Juil 17, 2008 13:45

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: 3062
Inscription: Jeu Sep 14, 2006 4:53

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
 
Messages: 17
Inscription: Jeu Juil 17, 2008 13:45

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 passionné
WRInaute passionné
 
Messages: 844
Inscription: Lun Mai 31, 2004 15:19

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: 3062
Inscription: Jeu Sep 14, 2006 4:53

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


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités