2016-11-29 13 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") 

"name"、 "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

Roger ...ユーザー入力の検証が処理されます(ここでは言及しません)。 –

+0

@SaurabhAdhikary Cool。あなたの質問が解決された場合、[回答を受け入れる](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)を忘れないでください:) –

+0

確かに、 INTでは%dを使用します。 とにかく、タイは助け、私の目的を解決します。 Pls upvote私の質問も。 :) –

関連する問題