une boulette dans mysql ?

  • Auteur de la discussion Auteur de la discussion caro
  • Date de début Date de début
WRInaute impliqué
salut les gars
je viens de m'appercevoir que j'ai du faire une boulette dans ma requete à mysql.

j'ai nommé un champs avec le mot "date", ca marche quand même mais quand je fais cette requete depuis SQL ca me met "date" en majuscule et en orange.
il parait qu'il ne faut jamais mettre de nom de champs comme ca.

c'est grave docteur ? :lol:

ps : exemple d'une requete avec ce champs "date"
SELECT date,pseudo,titre WHERE categorie=oui ORDER BY date DESC ...
 
WRInaute occasionnel
trouvé sur -http://dev.mysql.com/doc/mysql/fr/reserved-words.html

Les symboles suivants (issus de la table ci-dessus) sont interdits par ANSI SQL mais permis par MySQL en tant que noms de colonnes ou de tables. Cela est dû au fait que ces noms sont très courants, et de nombreux programmeur les ont déjà utilisés.

ACTION
BIT
DATE
ENUM
NO
TEXT
TIME
TIMESTAMP
 
WRInaute discret
C'est une bonne idee d'eviter les mots cles reserves, mais au pire tu peux utiliser le 'backtick' ou 'apostrophe inversee' (je sais pas comment on appelle ca en francais:

SELECT `date`,pseudo,titre WHERE categorie=oui ORDER BY `date` DESC ...
 
WRInaute passionné
Perso, je n'ai jamais eu ce problème avec mes tables Mysql (qui ont pourtant des colonnes de ce nom). Mais les apostrophes inversées devraient effectivement empêcher tout souci.
 
WRInaute passionné
un gros problème pour moi a été l'utilistation d'un champ nommé desc (pour description). Et bein ça plante (amalgame avec le DESC de ORDER BY je suppose)

Peut être qu'avec `desc` ce serait passé, effectivement....
 
Discussions similaires
Haut