string in query printen.
Beide manieren werken maar wat is nou het beste en wat is het verschil?
Manier 1:
Manier 2:
Gewijzigd op 12/03/2018 15:45:23 door Jasper Schellekens
Het is ten eerste ook logischer, en verder worden $vars sowieso niet geparsed tussen single-quotes en wel tussen dubbel-quotes.
Toevoeging op 12/03/2018 16:17:04:
Overigens zijn er nog meerdere manieren om je strings samen te stellen:
of, zeker bij grote queries mijn favoriet, met een heredoc:
Maar eigenlijk moet je vanwege de kans op SQL injection helemaal geen strings in queries printen en in plaats daarvan gebruik maken van prepared statements en placeholders.
Gewijzigd op 12/03/2018 16:20:49 door Willem vp
Willem vp op 12/03/2018 16:09:55:
Ik vind de tweede manier de beste, want dan vervuil je je code niet met een brij van allemaal enkele quotes, dubbele quotes en punten. Vooral wanneer je een string hebt met een heleboel variabelen maak je op de eerste manier je code vrijwel onleesbaar.
Ieder zijn manier. Maar met een beetje editor zie je wel het verschil tussen variabelen en strings.
- Ariën - op 12/03/2018 16:00:17:
en verder worden $vars sowieso niet geparsed tussen single-quotes en wel tussen dubbel-quotes.
Op eenzelfde wijze heb je zoiets nodig in HTML, om karakters die een speciale betekenis hebben in HTML te escapen (denk aan htmlspecialchars()).
Mijn voorkeur gaat uit naar prepared statements. Volgens mij ben je daarmee niet alleen van dit probleem verlost maar ook van het risico op sql-injection.
Pipo Clown op 12/03/2018 19:24:53:
Mijn voorkeur gaat uit naar prepared statements. Volgens mij ben je daarmee niet alleen van dit probleem verlost maar ook van het risico op sql-injection.
Een verkeerd gebruik van welke methode dan ook is meestal niet veilig. Het lijkt mij onverstandig om je veilig te wanen simpelweg omdat je gebruik maakt van aanpak X.
Je moet te allen tijde snappen wat je doet. Ik heb vaak zat mensen gezien die vrolijk strings aan de SQL van hun prepared statement aan het rijgen waren... Want prepared statements waren toch veilig?
Aan het einde van de dag maakt het niet uit wat je gebruikt zolang je maar snapt waarom iets veilig is of waarom je doet wat je doet. Als je geen motivatie voor een werkwijze hebt (wat meestal neerkomt op niet snappen wat je doet maar het volgen van een apetruuk omdat je dat zo geleerd hebt) is deze per definitie ongeschikt.
Gewijzigd op 12/03/2018 22:37:16 door Thomas van den Heuvel