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

Wstaw listę do mojej bazy danych za pomocą Pythona

Odpowiedź na Twoje pierwotne pytanie brzmi:Nie, nie możesz wstawić takiej listy.

Jednak po pewnych poprawkach możesz sprawić, by ten kod działał, używając %r i przekazując krotkę:

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

Niestety, ten styl wstawiania zmiennych naraża Twój kod na ataki wstrzykujące SQL .

Zamiast tego zalecamy użycie Python DB API i budowanie dostosowanego ciągu zapytania z wieloma znakami zapytania do wstawiania danych:

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)

Przykład na początku dokumentacja SQLite3 pokazuje, jak przekazywać argumenty za pomocą znaków zapytania i wyjaśnia, dlaczego są one konieczne (zasadniczo zapewnia poprawne cytowanie zmiennych).



  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 otrzymuje wszystkie zmienione wiersze dla wielu instrukcji w jednym zapytaniu

  2. Utwórz tabelę tymczasową w MySQL z indeksem z wybranych

  3. Tablica PDO SHOW TABLES

  4. Jak ustawić domyślną wartość dla kolumny MySQL Datetime?

  5. Pola wyboru MySQL zawierające początkowe lub końcowe białe znaki