probleme de quotes !

probleme de quotes ! - SQL/NoSQL - Programmation

Marsh Posté le 10-12-2007 à 11:19:00    

Bonjour,
 
Voili voilou, j'ai un petit probleme de quotes pour un requetes MySQL dans un site en php.
 
ma requete est la suivante :  
    $query = "SELECT `name` FROM 'thematique' WHERE 'id' = \"".$thema_num."\"";
 
 
mon probleme se situe autour du mot id : si je met un double quotes "id"  , il l'interprete comme un mot et ne me renvoit rien, normal..
si je met une apostrophe  'id'   , cela me revoit une erreur sql
 
un autre symbole peut s'apparenter a des quotes sur mon clavier (quebecois), celui ci : `iop`, mais c'est en fait l'accent grave (a taper avant une lettre accentuée.)
 
Je ne sais pas quoi mettre comme quotes pour que ma requete passe... please help me pour ce ridicule petit probleme de merde..
 
merci d'avance,
Vezoul

Reply

Marsh Posté le 10-12-2007 à 11:19:00   

Reply

Marsh Posté le 10-12-2007 à 11:45:57    

Code :
  1. $query = "SELECT `name` FROM `thematique` WHERE `id` = '".$thema_num."'";


ou encore

Code :
  1. $query = "SELECT name FROM thematique WHERE id = '".$thema_num."'";


sont des syntaxes qui fonctionnent si ma mémoire est bonne (sous MySQL, je suppose?).

 

Sinon :
"cela me revoit une erreur sql"
C'est vague... Quelle erreur exactement? As-tu essayé d'en savoir plus avec mysql_error() par exemple? Ou fonction équivalente pour autre SGBD.


Message édité par dwogsi le 10-12-2007 à 11:47:34

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 11-12-2007 à 17:42:22    

les quotes ' c'est le délimiteur standard de chaînes de caractères.
donc la requête " where 'id' = xxx " ça compare pas le champ ID avec une valeur, mais ça compare la chaîne "id" à une valeur...
 
le guillement " n'est pas le délimiteur standard de chaînes de caractères. de mémoire, MySQL le supporte, mais c'est à éviter à tout prix. Avec Oracle par exemple, c'est utilisé pour faire un alias d'un champ en permettant l'utilisation du caractères espace (même rôle du " qu'en ligne de commande)
 
la quote inversée `, c'est une merde proprio de mysql qui permet de dire que le mot situé entre ` n'est pas un mot-clé mais un objet utilisateur (table, champ, etc.)
 
c'est à éviter comme la peste, car non portable et source d'erreur : à partir du moment où tu en as besoin, c'est que tu utilises des mot clés réservés du système (genre un champ nommé DELETE) et tu vas te heurter à des bugs lorsque tu vas les oublier. pas glop... (surtout que [alt gr] + [7] c'est plutôt chiant à taper...)


Message édité par MagicBuzz le 11-12-2007 à 17:44:13
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed