2016-11-29 5 views
1

Я хочу создать таблицу в SQLite с Python, где имена столбцов будут храниться в переменной.Создать пользовательское имя столбца в таблице sqlite в Python

import sqlite3 as lite<br> 
con = lite.connect('MyData.db') 

name = raw_input() # I am taking values from user here 
id1 = raw_input() 
a=con.execute("CREATE TABLE PROD_SA_U_1(
    name TEXT, 
    ids INT") 

Вместо столбца, названного как «имя», «идентификатор», я хочу, чтобы пользователь вводил данные.

ответ

1

Вы можете просто заменить имена, которые пользователь предоставляет в строке запроса.

Пример:

import sqlite3 as lite 
con = lite.connect('MyData.db') 

field_1 = raw_input() 
field_2 = raw_input() 

query = "CREATE TABLE PROD_SA_U_1(%s TEXT, %s INT)" 

a = con.execute(query % (field_1, field_2)) 

Однако, обратите внимание, что этот подход vulnurable для запуска неправильных запросов, если поля не проверяются, поэтому вы должны дезинфицировать поля, прежде чем передать их дальше. Например, злоумышленник может передать запрос Drop database в ваши аргументы.

+0

Roger ... Подтверждение ввода пользователем позаботится (не указано здесь) ... –

+0

@SaurabhAdhikary Cool. Не забудьте [принять ответ] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work), если ваш запрос был решен :) –

+0

Конечно, небольшие изменения, для INT мы будем использовать% d. В любом случае, Ты для меня помог, решил мою цель. Pls upvote мой вопрос тоже. :) –

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