Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Znaki specjalne ucieczki MySQL w Pythonie

To jeden z powodów, dla których powinieneś używać wiązania parametrów zamiast formatowania parametrów w Pythonie.

Po prostu zrób to:

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

Następnie:

cur.execute(sql, macs, host)

W ten sposób możesz po prostu zajmować się łańcuchem jako łańcuchem i pozwolić bibliotece MySQL dowiedzieć się, jak zacytować i uciec od niego za Ciebie.

Ponadto ogólnie uzyskujesz lepszą wydajność (ponieważ MySQL może skompilować i buforować jedno zapytanie i ponownie użyć go dla różnych wartości parametrów) i uniknąć Ataki wstrzykiwania SQL (jeden z najczęstszych sposobów na zhakowanie).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego nie mogę wstawić 10 cyfr, gdy moja kolumna to INT(10)

  2. MySQL:transakcje w wielu wątkach

  3. Błąd zdarzenia Mysql przy użyciu php

  4. MySQL daje zmienną liczbę wierszy, gdy pytam schemat?

  5. Porównanie z wartościami NULL