Создание таблицы с именем, заданным через переменную, в sqlite

170 просмотра
0
0 Комментариев

Здравствуйте помогите пожалуйста. Мне нужно чтобы после ввода значение создавалась в бд таблица с таким названием , но я не знаю как конкретно написать потому что в данном случае происходит ошибка.

def createbd(event):
    o=o1.get()
    conn = sqlite3.connect('bd/to.db')
    c = conn.cursor()
    c.execute('CREATE TABLE ? (id int auto_increment primary key,vopros char(150),otv1 varchar(50),otv2 varchar(50),otv3 varchar(50),pravotv varchar(50))',o)


Добавить комментарий

1 Ответы

Python Опубликовано 12.12.2018
0

Подстановочные символы нельзя использовать в позиции имени таблицы. Вам придётся использовать конкатенацю строк:

c.execute('CREATE TABLE ' + o + ' (id int auto_increment primary key,vopros char(150),otv1 varchar(50),otv2 varchar(50),otv3 varchar(50),pravotv varchar(50))')

И лучше озаботится тем, чтобы в o не оказалось символов, которые могут привести к sql injection:

import re
 
r = re.compile('[^a-zA-Z]')
 
def createbd(event):
    o = o1.get()
    if o:
        o = r.sub('', o)
    ...

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up