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

Вмъкване на списък в моята база данни с помощта на Python

Отговорът на първоначалния ви въпрос е:Не, не можете да вмъкнете такъв списък.

Въпреки това, с някои настройки, можете да накарате този код да работи, като използвате %r и предаване в кортеж:

variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1, variable_2]
print "INSERT INTO table VALUES %r;" % (tuple(varlist),)

За съжаление, този стил на вмъкване на променлива прави кода ви уязвим за атаки с инжектиране на SQL .

Вместо това препоръчваме да използвате API на Python DB и изграждане на персонализиран низ за заявка с множество въпросителни знаци за данните, които ще бъдат вмъкнати:

variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1,variable_2]
var_string = ', '.join('?' * len(varlist))
query_string = 'INSERT INTO table VALUES (%s);' % var_string
cursor.execute(query_string, varlist)

Примерът в началото на SQLite3 документи показва как да предавате аргументи с въпросителни знаци и обяснява защо са необходими (по същество гарантира правилното цитиране на вашите променливи).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Записване на специални символи в MySQL база данни

  2. Как да SELECT въз основа на стойност на друг SELECT

  3. Как:Почистване на mysql InnoDB машина за съхранение?

  4. Как да конвертирате csv формат на дата в mysql db

  5. Предаване на име на колона като параметър към съхранена процедура в mySQL