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

Python:bedste praksis og sikreste måde at oprette forbindelse til MySQL og udføre forespørgsler på

For at undgå injektioner, brug execute med %s i stedet for hver variabel, send derefter værdien via en liste eller tupel som den anden parameter i execute . Her er et eksempel fra dokumentationen :

c=db.cursor()
max_price=5
c.execute("""SELECT spam, eggs, sausage FROM breakfast
          WHERE price < %s""", (max_price,))

Bemærk, at dette bruger et komma , ikke % (som ville være en direkte strengsubstitution, ikke escaped). Gør ikke dette :

c.execute("""SELECT spam, eggs, sausage FROM breakfast
          WHERE price < %s""" % (max_price,))

Derudover må du ikke bruge enkelte anførselstegn omkring stillingsindehaveren ('%s'). ) hvis parameteren er en streng, da driveren leverer disse.



  1. MySQL-forespørgsel, MAX() + GRUPPER EFTER

  2. Udfør native sql med hibernate

  3. PHP PDO udarbejdede erklæringer

  4. Sådan tilføjes en logfil til en SQL Server-database (T-SQL)