Mysql
 sql >> база данни >  >> RDS >> Mysql

Python MySQL избягва специални символи

Това е една от причините, поради които трябва да използвате свързване на параметри вместо да форматирате параметрите в Python.

Просто направете това:

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

След това:

cur.execute(sql, macs, host)

По този начин можете просто да се справите с низа като низ и да оставите библиотеката MySQL да разбере как да го цитира и избягва вместо вас.

На всичкото отгоре обикновено получавате по-добра производителност (защото MySQL може да компилира и кешира една заявка и да я използва повторно за различни стойности на параметри) и избягвате Атаки с инжектиране на SQL (един от най-често срещаните начини да бъдете хакнат).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да направите sql-mode=NO_ENGINE_SUBSTITUTION постоянен в MySQL my.cnf

  2. Най-добрият кошмар за наследена база данни на MySQL

  3. MySQL:GROUP_CONCAT с LEFT JOIN

  4. MAMP mysql сървърът няма да стартира. Не се изпълняват процеси на mysql

  5. Вмъкнете стойностите на масива, вмъкнете в единичен идентификатор в базата данни на mysql, като използвате php и PDO