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

Екраниране на кавички за MySQL в python

Не използвайте форматиране на низове за интерполиране на SQL стойности. Използвайте SQL параметри:

SQL = 'INSERT INTO test_table (col1, col2, col3, col4) VALUES (%s, %s, %s, %s)'
cursor.execute(SQL, (var1, var2, var3, var4))

Тук %s са SQL параметри; след това базата данни се грижи за избягването на стойностите (предадени като 2-ри аргумент на `cursor.execute) вместо вас.

Какъв точно синтаксис трябва да използвате зависи от вашия адаптер за база данни; някои използват %s , други използват ? за заместителите.

По друг начин не можете да използвате Python контейнери, като списък, за тези параметри. Първо ще трябва да сериализирате това в низов формат; бихте могли да използвате JSON за това, но след това също трябва да запомните да декодирате JSON в низ на Python отново, когато правите заявка към базата данни. Това се опитаха да предадат отговорите на другия въпрос.

Например, ако var4 е списъкът, можете да използвате:

cursor.execute(SQL, (var1, var2, var3, json.dumps(var4)))


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Задайте стойност AUTO_INCREMENT програмно

  2. MySQL - Възможно ли е да се използва LIKE за всички колони в таблица?

  3. как да използвам функцията за ляво на низ в hql

  4. индексира битово поле в MYSQL

  5. JPA заявка в множество таблици с връзка много към много