sql >> Databáze >  >> RDS >> Mysql

Python MySQL speciální znaky escape

To je jeden z důvodů, proč byste měli používat vazbu parametrů místo formátování parametrů v Pythonu.

Udělejte toto:

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

Potom:

cur.execute(sql, macs, host)

Tímto způsobem můžete s řetězcem zacházet jako s řetězcem a nechat knihovnu MySQL, aby zjistila, jak jej citovat a escapovat za vás.

Kromě toho obecně získáte lepší výkon (protože MySQL dokáže zkompilovat a uložit do mezipaměti jeden dotaz a znovu jej použít pro různé hodnoty parametrů) a vyhnout se Útoky SQL injection (jeden z nejběžnějších způsobů, jak se nechat hacknout).



  1. Žádné namapované entity ORM Doctrine podle aktuální konfigurace

  2. VYBERTE jeden sloupec, pokud je druhý prázdný

  3. Jak mohu importovat data z ASCII (ISO/IEC 8859-1) do své databáze Rails/PGSQL?

  4. Jak opravit chybu Msg 7325 na serveru SQL Server:„Objekty odhalující sloupce s typy CLR nejsou povoleny v distribuovaných dotazech“