Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1531 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  syntax error

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

syntax error

n°782077
kameha
Posté le 30-06-2004 à 10:06:46  profilanswer
 

Salut
je suis en train de faire un back office qui rentre des données dans mysql et j'ai cette erreur au moment de l'envoi des infos:

Code :
  1. You have an error in your SQL syntax near 'VALUES (' ','2004-06-30','sdfsf','sdfsdf','sqdfsdf','sdfsdf','sdfsdfs','')' at line 1


 
Vous savez d'où ça peut venir?
merci

mood
Publicité
Posté le 30-06-2004 à 10:06:46  profilanswer
 

n°782132
Lord II
PIB2000
Posté le 30-06-2004 à 10:37:15  profilanswer
 

La réponse est écrite dans ton post : near 'VALUES
 
Plus sérieusement, il nous faudrait au moins la requete, et si celle-ci est dynamique, tu pourrais l'afficher avant de faire le mysql_query, ce qui te permettrait de voir ton erreur


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°782134
karmah
Pet contenu, furoncle au cul.
Posté le 30-06-2004 à 10:37:37  profilanswer
 

Est ce que tu ne peux pas mettre l'ensemble de la query???

n°782151
kameha
Posté le 30-06-2004 à 10:52:42  profilanswer
 

vous voulez voir le formulaire qui me permet de remplir les champs?

n°782154
Lord II
PIB2000
Posté le 30-06-2004 à 10:54:14  profilanswer
 

non, la requète que tu transmets


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°782156
kameha
Posté le 30-06-2004 à 10:55:56  profilanswer
 

Code :
  1. $q_insert  = mysql_query("INSERT INTO 'news' VALUES (' ','$date','$texte_fr','$texte_en','$texte_it','$texte_es','$url','')" )or die(mysql_error());

n°782159
ernst
Posté le 30-06-2004 à 10:57:23  profilanswer
 

enleve les '' autour de news...

n°782162
Lord II
PIB2000
Posté le 30-06-2004 à 10:58:46  profilanswer
 

Enlève les cotes autour du nom de la table
 
Ensuite il faut véridier la nature des champs, et que ceci soit positioné dans l'ordre puisque tu ne les listes pas auparavant.
 
Si tu peux également faire un affichage de la requèe avant éxecution, comme ca

Code :
  1. $requete = "INSERT INTO 'news' VALUES (' ','$date','$texte_fr','$texte_en','$texte_it','$texte_es','$url','')"
  2. echo $requete
  3. $q_insert  = mysql_query($requete)or die(mysql_error());


on pourrait avoir un exemple concret de requete envoyée vers le SGBD


Message édité par Lord II le 30-06-2004 à 10:59:26

---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°782166
kameha
Posté le 30-06-2004 à 11:00:47  profilanswer
 

ah ouai, jpouvais tjrs chercher. Merci, c'est ça.
 
par contre j'ai une autre erreur:
Column count doesn't match value count at row 1
 
C'est la date qu'à un probleme?

n°782172
Lord II
PIB2000
Posté le 30-06-2004 à 11:02:39  profilanswer
 

Non cela veut dire que tu ne rensigne pas tous les champs. Pour éviter ce genre de probleme ( meme si c'est plus court ), je te conseille de lister les champs dans ton insert

Code :
  1. insert into TABLE (CHAMP1,CHAMP2,...) VALUES(VALUE1,VALUE2,...)


Message édité par Lord II le 30-06-2004 à 11:02:53

---------------
La bave du crapaud n'empèche pas la caravane de passer .
mood
Publicité
Posté le 30-06-2004 à 11:02:39  profilanswer
 

n°782184
kameha
Posté le 30-06-2004 à 11:14:26  profilanswer
 

et c'est normal le premier (et le dernier) champ vide '' dans () de VALUE
 
je suis un peu perdu car j'ai recup une page php fait par un prestataire et je passe mon tps a debugger

n°782191
kameha
Posté le 30-06-2004 à 11:17:05  profilanswer
 

on est daccord que ça donne ça:

Code :
  1. $q_insert  = mysql_query("INSERT INTO news (' ','date','texte_fr','texte_en','texte_it','texte_es','url','') VALUES (' ','$date','$texte_fr','$texte_en','$texte_it','$texte_es','$url','')" )or die(mysql_error());


?

n°782192
Arjuna
Aircraft Ident.: F-MBSD
Posté le 30-06-2004 à 11:18:27  profilanswer
 

Normalement on peut tout à fait insérer des champs vides dans une base.
 
En fait, ta requête me semble correcte (mise à part le 'news' entre quote, car je vois pas comment tu pourrais insérer des données dans une chaîne de caractère)
 
La lise des champs avant le values est facultative à condition de fournir le même nombre de valeurs que de champs. Toutefois, si demain j'ai un mec qui bosse avec moi qui fait ça, c'est lui ou moi, mais l'un des deux quitte le projet, par expérience, y'a rien de mieu pour planter l'intégralité du code pour une raison "incompréhensible" 6 mois après la mise en prod du soft, quand un admin se sera amusé à faire un alter table histoire de modifier quelques trucs dans la table... Donc toujours fournir la liste des champs en plus des valeurs, ça permet au SGBD de savoir quelle donnée insérer dans quelle colonnes, au cas ou des colonnes soient rajoutées, ou qu'elles ne soient plus de le même ordre, ce qui arrive régulièrement dans une base qui "vit" )

n°782194
Lord II
PIB2000
Posté le 30-06-2004 à 11:19:57  profilanswer
 

kameha a écrit :

et c'est normal le premier (et le dernier) champ vide '' dans () de VALUE
 
je suis un peu perdu car j'ai recup une page php fait par un prestataire et je passe mon tps a debugger


 Là, on ne va pas pouvoir t'aider car on ne connait pas les structures des tables, ni les données que tu y enregistres.
 
Là, il faut que tu te penches un peu sur les tables, et le pourquoi du comment, on n'y insères des champs vides


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°782195
kameha
Posté le 30-06-2004 à 11:20:27  profilanswer
 

et ya pas une erreur de syntaxe dans mon dernier post

n°782196
kameha
Posté le 30-06-2004 à 11:21:29  profilanswer
 

pour le 1er champ vide, je me dis que c'est l'id qui s'auto incremente mais c'est le dernier qui me faisait douter

n°782197
Arjuna
Aircraft Ident.: F-MBSD
Posté le 30-06-2004 à 11:22:04  profilanswer
 

moi je suis sûr que c'est le 'news'. Les ' n'ont rien à foutre autour d'un nom de table, à moins que ce soit encore une invention de MySQL, mais ca m'étonnerait grandement.

n°782198
Lord II
PIB2000
Posté le 30-06-2004 à 11:22:19  profilanswer
 

les quotes dans la liste des champs sont en trop. Ensuite dans la liste des valeurs, tu ne mets des cotes qu'autour de certain type de valeur
 
Il me semble que je t'ai donné un peu plus haut la syntaxe correcte du INSERT


Message édité par Lord II le 30-06-2004 à 11:23:56

---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°782200
Arjuna
Aircraft Ident.: F-MBSD
Posté le 30-06-2004 à 11:23:16  profilanswer
 

arf, j'avais pas vu les ' aussi dans la description de la table :)
 
bon ben pas besoin de chercher plus loin...

n°782201
ernst
Posté le 30-06-2004 à 11:23:35  profilanswer
 

si, le nom du champs ' ', le premier et apres 'url'...  
$q_insert  = mysql_query("INSERT INTO news (date,texte_fr,texte_en,texte_it,texte_es,url) VALUES ('$date','$texte_fr','$texte_en','$texte_it','$texte_es','$url')" )or die(mysql_error());

n°782202
kameha
Posté le 30-06-2004 à 11:24:07  profilanswer
 

Arjuna-->Ernst me l'a dit un peu plus haut. Ca été modif merci.

n°782204
kameha
Posté le 30-06-2004 à 11:25:38  profilanswer
 

Arjuna-->ah oui tu parlais des ' ds la description des tables, autant pour moi

n°782206
kameha
Posté le 30-06-2004 à 11:26:51  profilanswer
 

j'ai encore un ou deux bugs mais ça marche
 
MERCI A TOUS

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  syntax error

 

Sujets relatifs
error: (10053, 'Software caused connection abort')VC6 Syntax error
parser error-Résolu- [EasyPHP] Internal Server Error !
[PHP] Super globales et directive error_reporting sur E_ALLerror C2146, C2501et C1004 en VC++
Constraint_error : puiss4.adb:126 index check failedFATAL ERROR : ImageCreateFromJpeg()
MySQL a répondu:You have an error in your SQL syntax near 'Serveur loc[C++] déclaration de tableau d'entier statiques => syntax error !!!
Plus de sujets relatifs à : syntax error


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR