Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels 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 04/10/2011, 14h50   #1
Membre régulier
 
franck franck
Développeur Web
Inscription : mai 2010
Messages : 98
Détails du profil
Informations personnelles :
Nom : franck franck
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 98
Points : 91
Points : 91
Par défaut Problème d'insert mysql

Bonjour, depuis un moment je tente de faire un insert dans mysql mais je n'y parviens pas. Ma requête est la suivante:
Code :
1
2
3
 
INSERT INTO odetails (id, order_id, prodcode, qty, unitprice, total, shorttext, OPTION) 
VALUES ('', 15, 'COTI03', '2', '80', '160', 'ASSISTANCE JURIDIQUE EMPLOYE', '' )
cela provient il du champ option?

Merci à vous.
franck31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 15h09   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Comme tu peux le voir avec la coloration syntaxique de ta requête, OPTION est un mot réservé du langage SQL. Il faut éviter de nommer les tables et colonnes avec ces mots.
Pour être sûr de ne jamais le faire, j'ai adopter l'ajout d'un code mnémotechnique rappelant la table à laquelle appartient la colonne et un code pour le type de table préfixant le nom de la table, comme le préconise SQLPro (même si je n'ai pas adopté toute sa méthode).
Dans ton cas, tu pourrais adopter par exemple ces noms :
te_odetails_odt (odt_id, odt_order_id, odt_prodcode, odt_qty, odt_unitprice, odt_total, odt_shorttext, odt_option)

Si tu ne peux pas changer la structure de la table, encadre dans tes requêtes les noms d'objets qui sont des mots SQL avec des apostrophes inversées :
Code :
1
2
INSERT INTO odetails (id, order_id, prodcode, qty, unitprice, total, shorttext, `option`) 
VALUES ('', 15, 'COTI03', '2', '80', '160', 'ASSISTANCE JURIDIQUE EMPLOYE', '' )
Au passage :
1) Inutile d'alimenter des colonnes à vide si c'est la valeur par défaut.
Ne mets tout simplement pas ces colonnes dans ta requête.
2) Inutile d'encadrer les valeurs numériques avec des apostrophes si elles alimentent une colonne de type numérique. C'est probablement le cas des colonnes "qty", "unitprice" et "total", et j'espère aussi de la colonne "id" qui est probablement de plus auto-incrémentée donc inutile de lui affecter une valeur, vide qui plus est !

Pour finir...
Citation:
mais je n'y parviens pas.
Quels symptômes ?
- message d'erreur ?
- pas d'insertion de la ligne dans la table ?
- l'ordi a explosé ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 15h19   #3
Membre régulier
 
franck franck
Développeur Web
Inscription : mai 2010
Messages : 98
Détails du profil
Informations personnelles :
Nom : franck franck
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 98
Points : 91
Points : 91
J'avais essayé déjà déjà de mettre option entre `` mais ça ne fonctionné pas. Le message d'erreur est vous avez une erreur dans votre requête à la ligne 1 erreur 1064.
franck31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 15h23   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Donne le message d'erreur complet STP.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 15h25   #5
Membre régulier
 
franck franck
Développeur Web
Inscription : mai 2010
Messages : 98
Détails du profil
Informations personnelles :
Nom : franck franck
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2010
Messages : 98
Points : 91
Points : 91
Problème résolu, en fait cela provenait de order_id qui est en réalité orderid.
Option m'a fait bloquer sur un problème qui n'en était pas un en fait.

Merci de vos réponses.
franck31 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 04h09.


 
 
 
 
Partenaires

Hébergement Web