COLUMN: Backticks in SQL-Queries
De afgelopen 2 weken lees ik op PHPhulp.nl vaak discussies over de zogenaamde 'backticks' in queries. Eigenlijk best logisch, aangezien nergens echt duidelijk wordt uitgelegd waarom backticks wel of niet moeten worden gebruikt in queries.
Gereserveerde Veldnamen
Als je een gevorderde PHP'er bent wist je het al, een MySQL database heeft gereserveerde woorden, die je niet mag gebruiken in veldnamen of tabelnamen. Namen zoals 'order', 'key' en 'drop', deze namen gebruikt de database intern en om verwarring - of errors - buiten de deur te houden mogen die namen niet worden gebruikt in queries.
Backticks
Maar wat nou als je echt een veld moet uitlezen met de naam 'order'? Dan kan je overwegen backticks te gebruiken in je query. Dat is een van de handige opties die backticks je geven.
Laten we zeggen, dat we de volgende query hebben:
SELECT 'id', 'naamenachternaam', 'nogeenveld'
De veldnamen zijn nu bijna onleesbaar doordat er geen onderscheid word gemaakt tussen woorden. Backticks geven je de optie spaties en andere alternatieve tekens te gebruiken in je query.
Bijvoorbeeld:
SELECT `id`, `naam & achternaam`, `nog een veld`
Nu is het dus mogelijk spaties, komma's en zelfs een ampersand te gebruiken in je query. Dit lijkt misschien handig, maar in werkelijkheid helpt dit je hele database om zeep. Je verliest gemakkelijk overzicht en in grote CMS systemen is dat niet wenselijk.
Dat betekend natuurlijk niet dat je nooit backticks mag gebruiken in je query. Stel dat je de volgorde van iets wilt opslaan, dan is het makkelijk een veld te gebruiken met de naam 'order', of misschien een bestelling?
Gevaren
De gevaren zijn klein en zelfs onwaarschijnlijk. Niet alle databases ondersteunen het gebruik van backticks. PhpMyAdmin(een database management tool maar desalniettemin) bijvoorbeeld wel, en SQLserver niet. Dit betekent dat overschakelen tussen verschillende databases misschien een probleem kan vormen.
Conclusie
Probeer zo weinig mogelijk gereserveerde woorden te gebruiken in je database en queries, als het echt niet anders kan: gebruik je backticks. Gebruik backticks nooit om onduidelijke veldnamen te kunnen gebruiken zoals 'gebruiker1 en twee', spaties en vreemde tekens horen simpelweg niet in een query.
bron
Gesponsorde koppelingen
Inhoudsopgave
Er zijn 17 reacties op 'Columns'
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu