2016-06-10 4 views
0

У меня возникла проблема с вставкой новых строк в таблицу MySQL. Имя таблицы изменится, поэтому она должна быть переменной и с этим у меня больше всего проблем. Как изменить имя таблицы «second» с переменной? Любая идея?Python/MySQL «Вставить в» с переменными

add_word = ("INSERT INTO second " 
       "(name, surname) " 
       "VALUES (%s, %s)") 
    data_word = (name1, surname1) 
    cursor.execute(add_word, data_word) 

ответ

-1

Вы сделать это следующим образом:

add_word = ("INSERT INTO {table} " 
      "(name, surname) " 
      "VALUES (%s, %s)") 
atable = 'second' 
data_word = (name1, surname1) 
cursor.execute(add_word.format(table=atable), data_word) 
+0

Он работает. Большое вам спасибо :) – newblack

+0

Не помещая данные отдельно, значит, вам нужно быть очень осторожным, чтобы избежать атак с SQL-инъекциями. – cmd

+0

Это опасно. Вы должны использовать встроенные в MySQL функции построения строк и экранирования. – User

1

Вы не сможете получить имя таблицы. Вам нужно будет поместить его в оператор sql. Может быть, как это:

add_word = ("INSERT INTO {table} " 
      "(name, surname) " 
      "VALUES (%s, %s)") 
table1 = 'second' 
data_word = (name1, surname1) 
cursor.execute(add_word.format(table=table1), data_word) 

 Смежные вопросы

  • Нет связанных вопросов^_^