sql >> Database >  >> RDS >> Mysql

Sql-query's die variabelen binden versus ze specificeren

Hoewel u uw zoekopdracht volkomen veilig kunt hebben zonder binding (door alle variabelen handmatig op te maken), is het gebruik van voorbereide instructies om uw gegevens in de zoekopdracht weer te geven inderdaad de enige juiste manier.

Het belang van het gebruik van voorbereide verklaringen wordt vaak verkeerd ingeschat, dus ik wil graag de echte voordelen verduidelijken:

  • voorbereide verklaring maakt juiste opmaak (of behandeling) onvermijdelijk .
  • voorbereide verklaring zorgt voor de juiste opmaak (of verwerking) op de enige juiste plaats - vlak voor de uitvoering van de query, niet ergens anders, dus onze veiligheid is niet afhankelijk van onbetrouwbare bronnen zoals
    • een of andere 'magische' PHP-functie die de gegevens eerder bederft dan ze veilig maakt.
    • goede wil van een (of meerdere) programmeurs, die kunnen besluiten om onze variabele ergens in de programmastroom te formatteren (of niet te formatteren). Dat is het punt van groot belang.
  • voorbereide instructie heeft invloed op de waarde die in de query wordt opgenomen, maar niet op de bronvariabele, die intact blijft en kan worden gebruikt in de verdere code (te verzenden via e-mail of op het scherm te tonen).
  • voorbereide instructie kan de applicatiecode aanzienlijk korter maken, waarbij alle opmaak achter de schermen wordt uitgevoerd (*alleen als de bestuurder dit toestaat).


  1. Is Microsoft Access nog steeds relevant in 2020?

  2. Postgresql:psql-uitvoering scripten met wachtwoord

  3. Gebruik datum in Excel-cel in BETWEEN-clausule in SQL-query

  4. Oracle Trigger WHEN-clausule Voorbeeld