Avatar billede hanibald Mester
25. september 2016 - 22:46 Der er 9 kommentarer

PHP backtick

I hvilke situationer skal backticks anvendes - om overhovedet nogen?

$sql = "SELECT * FROM `{$this->_table}`
  ORDER BY `name` ASC";
Avatar billede arne_v Ekspert
26. september 2016 - 01:02 #1
Teknisk set skal backticks bruges omkring navne som er reserverede ord i MySQL.

Da man ikke boer bruge navne som er reserverede ord i MySQL, saa boer man aldrig have brug for backticks og derfor aldrig bruge dem.
Avatar billede arne_v Ekspert
26. september 2016 - 01:48 #2
Rettelse: udover reserverede ord skal de ogsaa bruges til navne med mellemrum i og navne med diverse ikke-printbare tegn. Konklusionen holder stadig.
Avatar billede erikjacobsen Ekspert
26. september 2016 - 13:37 #3
Og en anden holdning:

Brug altid `.....` omkring dine navne på felter osv i MySql.

Fordi du kan ikke vide, om det navn du har fundet på, bliver et reserveret ord i næste udgave i MySql. Eksempelvis kan du bruge ordet "stored" i MySql 5.5 - men ikke i 5.7.6, hvor det er et nyt reserveret ord (utestet)

Tilsvarende med MSSQL og [....]
Avatar billede arne_v Ekspert
26. september 2016 - 15:37 #4
Det kan ske. Men ved lidt omtanke synes jeg ikke at risikoen er stor.

Nye reserverede ord siden 5.1:

GENERATED
OPTIMIZER_COSTS
VIRTUAL
STORED
GET
IO_AFTER_GTIDS
IO_BEFORE_GTIDS
MASTER_BIND
RESIGNAL
SIGNAL

Nogle af dem er saa specielle at man naeppe vil vaelge dem.

STORED er et navn som man vil undgaa da det er et kendt keyword i andre SQL dialekter.

GET er ogsaa et navn som man vil undgaa. For stor risiko for at det er reserveret.

Der er ikke mange som jeg vil betragte som en reel risiko for at have givet problemer (for dem som har taenkt lidt over tingene).

Til gengaeld vil konsekvent brug af backticks give en masse arbejde, hvis man skal skifte database fra MySQL til noget andet.

Og det sker.

At bruge PDO og SQL med backticks er efter min mening absurd - man vaelger et database uafhaengigt API og saa laver man al sin SQL database afhaengig.
Avatar billede hanibald Mester
27. september 2016 - 15:56 #5
Findes der en god dansk betegnelse for backtick?
Avatar billede arne_v Ekspert
27. september 2016 - 16:07 #6
"bagud gnyffer" ?

:-)

Nogle gange maa man bare bruge de engelske.
Avatar billede erikjacobsen Ekspert
27. september 2016 - 16:50 #7
Det er jo essentielt en "accent grave":  https://da.wikipedia.org/wiki/Diakritiske_tegn
Avatar billede arne_v Ekspert
27. september 2016 - 17:03 #8
Spoergsmaalet er som "accent grave" er en god dansk betegnelse.

:-)
Avatar billede hanibald Mester
28. september 2016 - 18:37 #9
Tusind tak for den samlede hjælp.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester