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 database heeft gereserveerde veldnamen. 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 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

« Lees de omschrijving en reacties

Inhoudsopgave

  1. COLUMN: Backticks in SQL-Queries

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.