sql >> Database >  >> RDS >> Mysql

Python MySQL escape speciale tekens

Dit is een van de redenen waarom je verondersteld wordt parameterbinding in plaats van de parameters in Python te formatteren.

Doe dit gewoon:

sql = 'UPGRADE inventory_server set server_mac = %s where server_name = %s'

Dan:

cur.execute(sql, macs, host)

Op die manier kunt u de tekenreeks gewoon als een tekenreeks behandelen en de MySQL-bibliotheek laten uitzoeken hoe u deze kunt citeren en escapen.

Bovendien krijg je over het algemeen betere prestaties (omdat MySQL één query kan compileren en cachen en deze opnieuw kan gebruiken voor verschillende parameterwaarden) en vermijd je SQL-injectie-aanvallen (een van de meest voorkomende manieren om jezelf te laten hacken).



  1. Is de OraOLEDB-provider in .NET onbetrouwbaar op CLOB-velden?

  2. SQL Server 2008- Tabelbeperkingen ophalen

  3. MySQL Unieke beperking toevoegen

  4. Buitenlandse sleutels en NULL in mySQL