Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/12/2011, 08h20   #1
Membre du Club
 
Étudiant
Inscription : novembre 2008
Messages : 123
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2008
Messages : 123
Points : 53
Points : 53
Envoyer un message via Skype™ à Echap
Par défaut pb requête :alimentation de DB

Bonjour tout le monde ,
j'ai hésité avant d'ouvrir cette discutions car elle se répète pour l'énième fois!!
j'ai lu toutes les réponses dans le forum ou presque mais le problème persiste . tout simplement une requête INSERT INTO comme d'habitude des valeur depuis un formulaire ...
voila ma requête:
Code :
1
2
3
4
5
6
7
8
$sql = 'INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) 
		VALUES (NULL
		, '.$nom.'
		, '.$prenom.'
		, '.$ville.'
		, '.$cota.'
		, '.$email.'
		, '.$dateDeNaissance.')';
voila l'echo de ma requete :
Code :
13INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) VALUES (NULL,sdk,lksd,dfgjk,0,sdfkn@hotmail.hk,2011-12-13)
voila mon erreur :
Code :
1
2
3
Erreur SQL !
INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) VALUES (NULL,sdk,lksd,dfgjk,0,sdfkn@hotmail.hk,2011-12-13)
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 '@hotmail.hk,2011-12-13)' at line 3
sinon il m'affiche un erreur d'incompatibilité entre les type (date type dans la base de données et le la variable $dateDeNaissance ) !!!
vraiment j'ai modifier mon requête INSERT INTO 255 000 fois et tjrs les même erreur !
voila un exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Code :
123
$sql = 'INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) 
		VALUES 
		(NULL,'.$nom.','.$prenom.','.$ville.','.$cota.','.$email.','.$dateDeNaissance.')';
Erreur SQL ! INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) VALUES (NULL,mod,Med salah,sdf,0,mail@mail.fr,1985-12-14) 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 'salah,sdf,0,mail@mail.fr,1985-12-14)'
pourriez vous m'aider les amis
vraiment je suis devenue aveugle a cause les reformulation de ma requête et je suis pas habitué de travailler en php
Echap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2011, 08h32   #2
Membre éclairé
 
Avatar de hariman
 
Homme Luc Hariman RANDRIANOMENJANAHARY
Développeur Java
Inscription : janvier 2008
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Luc Hariman RANDRIANOMENJANAHARY
Localisation : Ile Maurice

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2008
Messages : 175
Points : 349
Points : 349
Envoyer un message via MSN à hariman Envoyer un message via Skype™ à hariman
Bonjour,

Je te suggère de mettre toutes les valeurs entre guillemets :

Code :
1
2
3
4
5
 
$sql = 'INSERT INTO adherent
          (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) 
	  VALUES 
          (NULL,"'.$nom.'","'.$prenom.'",...
__________________
Les boutons et adorent être cliqués, donc ne les oubliez pas
hariman est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/12/2011, 08h38   #3
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 726
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 726
Points : 3 293
Points : 3 293
Salut

C'est assez récurant comme problème il est vrai.

La réponse est dans le message d'erreur :
Citation:
VALUES (NULL,sdk,lksd,
Tes types de données sont des chaines de caractères, il faut donc 'quoter' (mettre des parenthèses).
Ce n'est que si c'est une donnée de type entier (integer : 1,2,3, etc ...) où il n'est pas nécessaire (voire pas recommander) de le faire.


Effectue ta requête plutôt comme ceci :
Code :
1
2
3
4
5
6
7
8
9
 
$sql = "INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) 
	VALUES (NULL,
	'".mysql_real_escape_string($nom)."',
	'".mysql_real_escape_string($prenom)."',
	'".mysql_real_escape_string($ville)."',
	'".mysql_real_escape_string($cota)."',
	'".mysql_real_escape_string($email)."',
	'".mysql_real_escape_string($dateDeNaissance)."')";
Entre autre : mettre des doubles quotes (guillemets) sur l'ensemble de la chaine SQL, ça évite d'échapper par la suite, puis il faut protéger les données par mysql_real_escape_string pour éviter un éventuel SQL injection.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/12/2011, 11h03   #4
Membre du Club
 
Étudiant
Inscription : novembre 2008
Messages : 123
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2008
Messages : 123
Points : 53
Points : 53
Envoyer un message via Skype™ à Echap
Citation:
Envoyé par RunCodePhp Voir le message
Salut

C'est assez récurant comme problème il est vrai.

La réponse est dans le message d'erreur :
Tes types de données sont des chaines de caractères, il faut donc 'quoter' (mettre des parenthèses).
Ce n'est que si c'est une donnée de type entier (integer : 1,2,3, etc ...) où il n'est pas nécessaire (voire pas recommander) de le faire.


Effectue ta requête plutôt comme ceci :
Code :
1
2
3
4
5
6
7
8
9
 
$sql = "INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) 
	VALUES (NULL,
	'".mysql_real_escape_string($nom)."',
	'".mysql_real_escape_string($prenom)."',
	'".mysql_real_escape_string($ville)."',
	'".mysql_real_escape_string($cota)."',
	'".mysql_real_escape_string($email)."',
	'".mysql_real_escape_string($dateDeNaissance)."')";
Entre autre : mettre des doubles quotes (guillemets) sur l'ensemble de la chaine SQL, ça évite d'échapper par la suite, puis il faut protéger les données par mysql_real_escape_string pour éviter un éventuel SQL injection.
très très très grand merci pour votre aide. pas de problème de date pas de problème d'espace entre les mots tout et fonctionnelle parfaitement
Bien cordialement
Echap
Echap est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h54.


 
 
 
 
Partenaires

Hébergement Web