Aller au contenu

You have an error in your SQL syntax


Sujets conseillés

Posté

Bonsoir à tous,

J'essaie d'insérer des données dans une base, mais j'obtien ce message d'erreur :

You have an error in your SQL syntax near ''cuisine' ( 'libelle' , 'url' , 'definition' , 'specialite', 'lien' , ' at line 1

J'utilise cette requête :

$Def="INSERT INTO 'cuisine'( 'libelle' , 'url' , 'definition' , 'specialite', 'lien' , 'lienA' , `lienB` , `lienC`,`lienD`,'Site','nom' ) 
VALUES (
'$libelle', '$url', '$description', '$categorie','$lien', '$lienA' , `$lienB` , `$lienC`,`$lienD`,'$Site','$nom' )";

Cette même requête fonctionne bien pour d'autre formulaire d'insertion de données.

J'ai bien vérifié le nom des variables, ainsi que le nom des champs de la base.

Donc je ne comprend pas du tout pourquoi j'ai un message d'erreur tel qu'en haut.

J'ai essayé aussi de placer une erreur dans la requête pour voir : J'ai mis INSERT INTO 'cusine' au lieu de'cuisine'. J'ai obtenu exactement le même message d'erreur.

De quoi cela peut il bien venir??

Merci pour votre aide.

Posté

Bonjour,

A première lecture tu mélanges allègrement les simples quotes ' et les backquotes ` ... et ce n'est pas bon. Les backquotes ne peuvent être utilisés que pour les noms de tables, pas pour les champs.

De plus, le fait de mettre tes variables dans des simples quotes en empêche l'interprétation. Il faut scinder ta chaîne.

Dan

Posté (modifié)

ok

merci Dan pour ta réponse, je n'ai plus le même message d'erreur... Donc j'en ai un autre ! (rien à voir cela étant à première vue)

maintenant j'obtiens le message

Unknown column 'ma deuxième def' in 'field list'

Mais ce que ne comprend pas c'est que 'ma deuxième def' n'est pas le nom d'une colonne c'est simplement la valeur d'une variable.

J'explique le fonctionnement global :

Le visiteur envoie une def dans la table recette suggérée: ça fonctionne.

Je réceptionne le contenu des champs dans mon admin pour valider : les valeurs des champs s'inscrivent directement dans des champs de formulaires, que je revalide ensuite si le contenu est correct.

ex: champ recette = les omelettes

dans mon admin je recois dans un input text 'les omelettes' etc pour toutes les valeurs.

donc 'ma deuxième def' ci dessus n'est rien d'autre que la valeur 'value' d'un imput text, correspondant au contenu d'un champ de la table réceptionnant les suggestions des visiteurs.

Pourtant j'obtiens le message ci dessus.

J'ai essayé de virer tout simplement ce champs de l'admin, pour ne pas avoir à le valider : Plus de message d'erreur, mais la table de destination ne reçoit absolument rien.

Un poltergeist dans mon serveur ?

Modifié par Boumbadaboum
Posté

Salut ;)

Il faudrait plutôt avoir le code qui pose problème, là je doute que ça soit juste un problème de valeur dans un formulaire, à mon avis c'est plutôt dans le traitement en PHP qu'il y a un souci ! ;)

Posté

Ok :

<?php
$validerNvDef="SELECT * FROM nouvelleDefinition WHERE libelle like '$nouvelleDefinition%' AND vue=0";
$validerDef=mysql_query("$validerNvDef");
while ($rNdef=mysql_fetch_array($validerDef))
{echo"
<input type=\"text\" name=\"libelle\" value=\"$rNdef[libelle]\">
<input type=\"text\" name=\"url\">
<input type=\"text\" name=\"site\" value=\"$rNdef[site]\">
<input type=\"text\" name=\"url\" value=\"$rNdef[url]\">
<input type=\"text\" name=\"specialite\" value=\"$rNdef[categorie]\">
$rNdef[Nvcategorie]</b><br>
<textarea name=\"description\" cols=\"40\" rows=\"20\"  >$rNdef[description]</textarea>
<input type=\"text\" name=\"lien\" value=\"$rNdef[lien1]\">
<input type=\"text\" name=\"lienA\" value=\"$rNdef[lien2]\">
<input type=\"text\" name=\"lienB\" value=\"$rNdef[lien3]\">
<input type=\"text\" name=\"lienC\" value=\"$rNdef[lien4]\">
<input type=\"text\" name=\"lienD\" value=\"$rNdef[lien5]\">
<input type=\"text\" name=\"email\" value=\"$rNdef[email]\">
<input type=\"text\" name=\"vue\" value=\"$rNdef[vue]\">
<input  type="submit" value="Envoyer">

Les champs email et vue ne sont pas insérés dans la requête sql (écrite au début du post).

Je récupère le contenu des value des input text ci dessus depuis une table qui contient donc les suggestions. Une fois vérifié en les lisant dans les champs input text je les réexpédie dans une autre table.

En théorie donc, puisque l'autre table ne recoit rien.

Posté

Ce n'est très certainement pas ce code là auquel Sarc faisait allusion.

Ce serait plutôt le code se trouvant dans le script php qui génère les requêtes sql.

Dan

Posté

c'est celui du premier post donc je pensais pas à celui là:

Bon voici donc le code qui génère la requête :

$Def="INSERT INTO `definitions` (  `libelle` , `url` , `definition` , `specialite`, `lien` , `lienA` , `lienB` , `lienC`,`lienD`,`Site`,`nom` ) 
VALUES (
`$def`, `$url`, `$description`, `$categorie`,`$lien`, `$lienA`, `$lienB`, `$lienC`, `$lienD`,`$Site`,`$nom`
)";
mysql_query($Def)or die (mysql_error());;

echo "Vos données ont été envoyées !";

mysql_close();

Voili voilou

Got an idea?

Posté

Je crois que tu n'as pas donné toute l'erreur du script, et surtout il faudrait préciser à quelle ligne de quel programme se situe l'erreur, ça permettra de mieux cibler le problème...

Posté (modifié)

ah si j'ai donné toute l'erreur du script :

Unknown column 'ma deuxième def' in 'field list'

et 'ma deuxième def' c'est la valeur de value input text qui post la variable $def avec ce contenu à destination de la requête sql ci dessus.

et j'ai dit que si j'enlève ce champs, je n'ai plus de message d'erreur, mais rien du tout n'est inséré dans la base.

Modifié par Boumbadaboum
Posté (modifié)

ouah Dan, je viens de voir ta photo : Je croyais que t'étais un petit jeune de 28/30 ans ! (peut être remarque ;) )

Enfin le problème est toujours là hein, faudrait pas l'oublier svp lol

Modifié par Boumbadaboum
Posté
ouah Dan, je viens de voir ta photo : Je croyais que t'étais un petit jeune de 28/30 ans ! (peut être remarque  ;)  )

Ah, pourquoi donc ? Je fais plus vieux que ça ? :lol:

Qu'est ce que j'ai écrit plus haut pour les backquotes ? As-tu lu le post ?

Dan

Posté

La vache je suis une tâche j'ai encore confondu les backquotes et les simples quotes

là ça fonctionne c'est bon

Donc merci Dan encore, le prob aurait pu être réglé dès le deuxième post.

Posté

Dan il a peut-être 30 ans mais lui au moins a des bonnes lunettes nah... :P

Tu nous fais tourner autour du pot pour nous montrer à la fin que tu n'as pas fais ce qu'avait dit Dan, c'est incroyable ça ! ;) enfin le principal est que ça marche...

Si jamais tu as encore un problème n'hésite pas hein lool

Posté (modifié)

On a posté ensemble, c'est bon ok.

En fait Dan, quand tu m'as dit les backquotes c'est pas pour les champs je n'ai pas fait le rapprochement avec les variables.

C'est bête mais bon.

Sinon non tu fais bien la trentaine, ton âge quoi. Par contre le coup de la barbe teinte en blanc pour faire oldSchool et tout je sais pas, mais bon c'est toi qui voit.

Bon allez j'arrête :P

Et merci :)

Modifié par Boumbadaboum
Posté

Tu as ma date de naissance dans mon profil... je n'ai aucunement honte de ma cinquantaine bien entamée :)

Posté (modifié)

Bah y'a pas de quoi avoir honte au contraire, si tu as marché dans le droit chemin toute ta vie plus tu es "âgé" plus tu es intéressant puisque tu es allé plus loin dans le bon sens.

En tout cas félicitation pour ton forum : Je me suis inscrit sur 5 forums en même temps il y 2 ou 3 semaines je sais plus et je ne viens plus qu'ici.

Bon je vais manger, bonne soirée à tous

Modifié par Boumbadaboum

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...