Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 05/01/2008, 16h21   #1
Invité de passage
 
Inscription : janvier 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 4
Points : 1
Points : 1
Par défaut [SQL] Requête SQL erreur de syntaxe

Bonjour,

J'ai déjà une petit expérience en php, après avoir réalisé plusieurs petit programme, mais sur ce coup ...

J'esper que vous pourrez m'aider.

Je prépart ma requête et puis je l'envoi avec un contrôle sur l'envoi:

Code :
1
2
3
4
5
if ( mysql_query($requete) ) 
					$smarty -> assign ( 'mess', "Inscription réussie.<br><a href=\"acceuil.php\">Acceuil</a>" );
				else
					{$smarty -> assign ( 'mess', "Echec de l'inscription.<br><a href=\"acceuil.php\">Acceuil</a>" );
					}
Le script me renvoi systèmatiquement l'echec de l'inscription.

Donc je regardes de plus près avec la fonction mysql_error().

Citation:
Erreur de syntaxe près de '"INSERT INTO comptes VALUES('','admin', 'adminpass', 'admin@admi' à la ligne 1
Je me dis que celà peut venir de ma requête et je décide donc de l'afficher pour juger par moi même.

Ma requête afficher juste avant l'envoi:

Citation:
"INSERT INTO comptes VALUES('','admin', 'adminpass', 'admin@admin.com', '', 'utilisateur', '', 'nom', 'prenom', '', '', '', '', '', '', '0' )"
Elle me parait plutôt correct, mais n'étant pas expert et ne trouvant aucune solution à mon problème pour l'instant, je fais appel à vous.

Merci d'avance.
helopme_69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 17h27   #2
Membre éclairé
 
Avatar de makmaoui
 
Développeur Web
Inscription : mai 2007
Messages : 282
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2007
Messages : 282
Points : 361
Points : 361
Salut,

pourrais-tu essayer de l'exécuter directement dans phpmyadmin ?
makmaoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 17h28   #3
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web indépendant

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
bonjour,

As tu le même nombre d'entrées que de champs? donc 16 champs?
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 17h54   #4
Invité de passage
 
Inscription : janvier 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 4
Points : 1
Points : 1
Merci pour vos réponses, je viens de tester directement dans phpmyadmin ma requete, elle fonctionne parfaitement.

Et oui il y a bien le même nombres de champs partout.

Je me creuse encore la tête mais je vois vraiment pas d'erreur. frustrant
helopme_69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 21h24   #5
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web indépendant

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
Bizarre, c'est pas un problème de clef primaire par hasard??

Comment écris tu ta requête et comment la lance tu??
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 21h39   #6
Invité de passage
 
Inscription : janvier 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 4
Points : 1
Points : 1
Pour ma requête:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$requete = "\"INSERT INTO comptes VALUES('',";
				$requete .= "'$log', ";
				$requete .= "'$pwd', "; 
				$requete .= "'$mail', ";
				$requete .= "'', ";
				$requete .= "'utilisateur', ";
				$requete .= "'', ";
				$requete .= "'$nom', ";
				$requete .= "'$prenom', ";
				$requete .= "'', ";
				$requete .= "'', ";
				$requete .= "'', ";
				$requete .= "'', ";
				$requete .= "'', ";
				$requete .= "'', "; 
				$requete .= "'0' )\"";
				echo $requete;
 
				if ( mysql_query($requete) )

PS: j'ai remarqué que l'erreur coupait toujours à un certain nombres de characères.

Citation:
Erreur de syntaxe près de '"INSERT INTO comptes VALUES('','test', 'testpass', 'test@test.co' à la ligne 1
Peut etre que ca vient juste de la fonction mysql_error qui tronque ma chaine volontairement, parceque l'echo de $requete retourne bien la chaine complete:

Citation:
"INSERT INTO comptes VALUES('','test', 'testpass', 'test@test.com', '', 'utilisateur', '', 'testeur', 'testeur', '', '', '', '', '', '', '0' )"
helopme_69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 21h46   #7
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web indépendant

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
ok

essais ça:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
$requete = "INSERT INTO comptes VALUES('',";
				$requete .= "'$log', ";
				$requete .= "'$pwd', "; 
				$requete .= "'$mail', ";
				$requete .= "'', ";
				$requete .= "'utilisateur', ";
				$requete .= "'', ";
				$requete .= "'$nom', ";
				$requete .= "'$prenom', ";
				$requete .= "'', ";
				$requete .= "'', ";
				$requete .= "'', ";
				$requete .= "'', ";
				$requete .= "'', ";
				$requete .= "'', "; 
				$requete .= "'0' )";
				echo $requete;
 
				if ( mysql_query($requete) )
Normalement pas besoin des guillemets, c'est bien ce qui me semblais quand je voyais le message d'erreur, mais j'étais pas sûr, maintenant si

++
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 21h51   #8
Invité de passage
 
Inscription : janvier 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 4
Points : 1
Points : 1
Ahh

Merci beaucoup, il me semblait pourtant que c'était obligatoir mais en relisant mes autres scripts c'était simplement les guillemets des mes chaines de charactères

Merci!
helopme_69 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 17h21.


 
 
 
 
Partenaires

Hébergement Web