Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en 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 01/08/2006, 12h29   #1
Rédacteur
 
Avatar de wamania
 
Développeur Web
Inscription : juillet 2003
Messages : 676
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 676
Points : 678
Points : 678
Par défaut Reconnaissance des colonnes

Salut

Je me demandais un petit truc sur le fonctionnement du parseur de MySQL.
J'ai vu qu'on pouvait mélanger restriction (clause WHERE) avec les conditions de jointures, MySQL s'en fichait, même si c'est pas terrible.

Ma question : Comment MySQL distingue une colonne d'une valeur?
Va-t-il forcement essayer, pour chaque expression, de trouver une (ou plusieurs) colonne(s) correspondante(s)?
si oui, quel poids ça a par rapport au fait d'entourer ou non les valeurs de simple quote ?

Merci d'avance
__________________
Articles sur developpez.com
- Gestion des exceptions avec PHP5
- Chiffrement et hash en PHP contre l'attaque Man in the middle
- Aedituus - Espace membre sécurisé en PHP5

Lithium : ORM ActiveRecord PHP5 extrêmement léger
wamania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 13h15   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
ce qui n'est pas entouré de quote et qui n'est pas un entier est un nom de colonne (éventuellement invalide) (sauf mots clés bien sûr)

inversement, les valeurs entières, ou les chaînes entourées de quotes sont des valeurs

tout simplement ^^
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 14h09   #3
Rédacteur
 
Avatar de wamania
 
Développeur Web
Inscription : juillet 2003
Messages : 676
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 676
Points : 678
Points : 678
oki d'accord
donc, je confirme
un string sans quote doit être une colonne, sinon erreur ?
Il se sera de toute façon jamais vu comme valeur potentielle?

Merci à toi pour ces précisions
__________________
Articles sur developpez.com
- Gestion des exceptions avec PHP5
- Chiffrement et hash en PHP contre l'attaque Man in the middle
- Aedituus - Espace membre sécurisé en PHP5

Lithium : ORM ActiveRecord PHP5 extrêmement léger
wamania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 15h33   #4
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Salut

Citation:
Envoyé par wamania
un string sans quote doit être une colonne, sinon erreur ?
Oui erreur "unknown column". Sauf si bien sûr ta chaîne est null.

Par contre, le contraire n'est pas toujours vrai. Une chaîne de caractères avec quote n'est pas forcément une valeur. En mode ASCII_QUOTES (set sql_mode = ansi_quotes; ), les noms de colonnes peuvent être entourées de double quotes. Et à ce niveau, la distinction entre noms de colonnes et valeurs de type chaîne de caractères ne se fait qu'avec le type de quotes (simples -> valeurs, doubles -> colonnes).

Citation:
Envoyé par wamania
Il se sera de toute façon jamais vu comme valeur potentielle?
Jamais, je ne sais pas. Pas à ma connaissance en tout cas.
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 17h28   #5
Rédacteur
 
Avatar de wamania
 
Développeur Web
Inscription : juillet 2003
Messages : 676
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 676
Points : 678
Points : 678
Merci bcp à vous 2
__________________
Articles sur developpez.com
- Gestion des exceptions avec PHP5
- Chiffrement et hash en PHP contre l'attaque Man in the middle
- Aedituus - Espace membre sécurisé en PHP5

Lithium : ORM ActiveRecord PHP5 extrêmement léger
wamania 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 14h15.


 
 
 
 
Partenaires

Hébergement Web