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

Hvordan er det indre af en udarbejdet erklæring?

Hvis du prøver at gøre, hvad det lyder som om, du prøver at gøre... så prøv ikke at gøre det.

Det er ikke, hvad en forberedt erklæring er (eller det er i hvert fald ikke, hvad den burde være).

Din klientkode bør ikke forsøge at interpolere værdier i forespørgselsstrengen for at generere en "færdig" forespørgsel, der skal sendes til serveren til udførelse. Det er en opskrift på katastrofe, for ikke at nævne en falsk følelse af sikkerhed.

Forberedte erklæringer leverer erklæringen med ? pladsholdere til serveren som den er, hvor serveren "forbereder" sætningen til eksekvering... og derefter sender klienten parametrene til serveren ("binder" parametrene) til eksekvering. Når du gør dette, vil serveren aldrig blive forvirret med hensyn til "hvilken del er SQL'en" og "hvilken del er dataene", hvilket gør sql-injektion umulig og gør det unødvendigt at undslippe og rense dataene.

Hvis du ikke kommunikerer direkte med C-API'en, bør du kalde metoderne i dit bibliotek, som viser dig de samme funktioner.




  1. Tilslutning af PowerShell til Salesforce.com

  2. WordPress – Bag kulisserne, del 1

  3. Mysql join og sum fordobler resultatet

  4. Oracle-sekvens men så i MS SQL Server