2016-11-29 73 views
1

我想用Python在SQLite中创建一个表,列名将存储在一个变量中。在Python中的sqlite表中创建自定义列名

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") 

而不是被命名为“名称”,“id”列,我想要什么用户输入。

回答

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

罗杰...验证用户输入是照顾(这里没有提到)... –

+0

@SaurabhAdhikary酷。如果您的查询已解决,请不要忘记[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work):) –

+0

当然,稍有变化,对于INT我们将使用%d。 无论如何,Ty for ya的帮助,解决了我的目的。 请投票upvote我的问题了。 :) –