sql >> Database teknologi >  >> RDS >> Mysql

SQL-forespørgsler, der binder variabler i forhold til at specificere dem

Selvom du kan have din forespørgsel helt sikker uden binding (ved at formatere alle variabler manuelt), er det faktisk den eneste rigtige måde at bruge forberedte udsagn til at repræsentere dine data i forespørgslen.

Vigtigheden af ​​at bruge forberedte udsagn bliver ofte fejlvurderet, så jeg vil gerne præcisere de reelle fordele:

  • forberedt erklæring gør korrekt formatering (eller håndtering) uundgåelig .
  • forberedt erklæring udfører korrekt formatering (eller håndtering) på det eneste rigtige sted - lige før udførelse af forespørgsler, ikke et andet sted, så vores sikkerhed er ikke afhængig af sådanne upålidelige kilder som
    • en eller anden PHP 'magisk' funktion, som hellere ødelægger dataene end at gøre dem sikre.
    • en (eller flere) programmørers gode vilje, som kan beslutte at formatere (eller ikke formatere) vores variabel et eller andet sted i programflowet. Det er det, der er af stor betydning.
  • forberedt erklæring påvirker selve værdien, der går ind i forespørgslen, men ikke kildevariablen, som forbliver intakt og kan bruges i den yderligere kode (som sendes via e-mail eller vises på skærmen).
  • forberedt erklæring kan gøre applikationskoden dramatisk kortere og udføre al formatering bag kulisserne (*kun hvis føreren tillader det).


  1. Opdeling af mysql-værdi i ukendt antal dele

  2. En potentiel forbedring af statistikopdateringer:MAXDOP

  3. MySQL Multiple Left Joins

  4. Brug af jsonb_set() til at opdatere specifik jsonb-arrayværdi