Webmaster Hub: Quote et quote - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Quote et quote Noter : -----

#1 L'utilisateur est hors-ligne   francoisch 

  • Groupe : Hubmaster
  • Messages : 628
  • Inscrit(e) : 05-mars 06

Posté 07 juillet 2011 - 10:26

Bonjour

J’ai une difficulté avec une requête d’une grande simplicité, comme j’en ai fait d’autres auparavant.

Je teste cette requête avec la fonction Insérer de PhpMyAdmin, voici la requête générée :
INSERT INTO`fctestbase1`.`esp1expression` (`sequence`,`action`,`objet`)VALUES (NULL,'lire','un livre');


Autant dire que la table existe, que les colonnes existent.

En modifiant un peu la requête générée et en la mettant dans la fenêtre Sql, ça fonctionne aussi :
INSERT INTO `esp1expression` (`sequence`,`action`,`objet`)VALUES (NULL,'lire','un livre')


En modifiant encore un peu la requête générée, ça fonctionne encore :
INSERT INTO `esp1expression` (`action`,`objet`)VALUES ('lire','un livre')


Ca fonctionne toujours :
INSERT INTO esp1expression ( `action`, `objet` )VALUES ( 'lire', 'un livre') 

Par contre, cette requête ne fonctionne pas :
INSERT INTO esp1expression ( 'action', 'objet' ) VALUES ( 'lire', 'un livre' )


Le message d’erreur :
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''action', 'objet' ) VALUES ( 'lire', 'un livre' )' at line 1

Il semble que les remplacements du signe par le signe ` autour de action et objet fasse la différence.

A votre avis ? Merci par avance de votre aide.

Francois
0

#2 L'utilisateur est hors-ligne   jcaron 

  • Groupe : Membre+
  • Messages : 864
  • Inscrit(e) : 15-janvier 08
  • Genre:Homme
  • Localisation:Londres

Posté 07 juillet 2011 - 12:02

Ben c'est bien normal, le backtick (`) permet de "quoter" un identifiant (nom de table, de colonne...) alors que ' encadre un "string litteral" (une constante textuelle).

http://dev.mysql.com...ing-syntax.html
http://dev.mysql.com...dentifiers.html

Par exemple, je te propose:
SELECT 'colonne' FROM table
SELECT `colonne` FROM table

Si les deux voulaient dire la même chose, comment mysql saurait-il si tu veux le contenu de la colonne "colonne" ou le texte "colonne"?

Note qu'en SQL ANSI (i.e. avec ANSI_QUOTES activé), c'est " et ' respectivement.

Jacques.
0

#3 L'utilisateur est hors-ligne   francoisch 

  • Groupe : Hubmaster
  • Messages : 628
  • Inscrit(e) : 05-mars 06

Posté 07 juillet 2011 - 17:43

bonjour Jacques et merci de ta réponse.

J'ignorais complètement l'utilisation, différente, de ces deux "apostrophes", même si ce nom n'est pas exact.

J'ai encore appris qqechose.

Merci à toi.

Francois
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)