コードは、Python環境(SQLクエリ内ではない)のユーザからの入力に対してクエリベースを実行することになっています。たとえば、変数はPython環境で定義されており、生の入力ではtable name = customers
の場合、テーブルcustomerの列名を出力することができます。どのようにsqlite3クエリにpython変数を渡すのですか?
ただし、次のコードは構文エラーを報告します。バックスラッシュと内部引用符を削除すると、no such column: table_name
と表示されます。値customers
がクエリにパススルーされておらず、クエリがtable_name
を文字列として読み取っているようです。
助けてください。おかげ
import sqlite3
def ask_column(db_name, table_name):
conn = sqlite3.connect(db_name)
c = conn.cursor()
c.execute('SELECT sql FROM sqlite_master WHERE type = \'table\' And name = \'table_name\'')
print c.fetchall()
conn.close()
db_name = raw_input("Please type the database name : ")
table_name = raw_input("Please type the table name: ")
ask_column(db_name, table_name)