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

MySQL-parametriserede forespørgsler

Pas på med at bruge strenginterpolation til SQL-forespørgsler, da det ikke undslipper inputparametrene korrekt og vil efterlade din applikation åben for SQL-injektionssårbarheder. Forskellen kan virke triviel, men i virkeligheden er den enorm .

Forkert (med sikkerhedsproblemer)

c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s" % (param1, param2))

Korrekt (med escape)

c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s", (param1, param2))

Det øger forvirringen, at de modifikatorer, der bruges til at binde parametre i en SQL-sætning, varierer mellem forskellige DB API-implementeringer, og at mysql-klientbiblioteket bruger printf stilsyntaks i stedet for det mere almindeligt accepterede '?' markør (bruges af f.eks. python-sqlite ).



  1. Er der nogen måde at indlejre power bi-rapporter og dashboards i vb.net eller C# desktop-applikation med sql server 2008-database?

  2. Hvordan kontrollerer man, om filen er et billede, der bruger PL/SQL?

  3. Hvordan migrerer jeg SQL Server-databasen til MySQL?

  4. Hvad er det længst mulige verdensomspændende telefonnummer, jeg bør overveje i SQL varchar(længde) for telefon