2016-06-10 2 views
0

MySQL 테이블에 새로운 행을 삽입하는 데 문제가 있습니다. 테이블의 이름이 바뀌므로 변수가되어야하며 가장 문제가 있습니다. 변수를 사용하여 테이블의 이름을 "두 번째"로 어떻게 바꿀 수 있습니까? 아이디어가 있으십니까?Python/MySQL "Insert into"with

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)