2016-08-12 10 views
0

次のコードを実行しようとすると、エラーsqlite3.OperationalError: near "%": syntax error が表示されます。私は%sを使用して、私のSQLクエリでパラメータを使用してい インポートsqlite3のsqlite3.OperationalError:near "%":構文エラー?

def getFromDB(DBname,table, url): 
    conn = sqlite3.connect(DBname) 
    cursor = conn.cursor() 
    sql = '''SELECT * FROM %s WHERE URL=%s''' 
    stuff = cursor.execute(sql, (table,url)) 
    stuff = stuff.fetchall() 
    return stuff 

url = 'http://www.examplesite.com/' 
getFromDB('AuthorData.sqlite','forbes',url) 

。助けてくれてありがとう!

+2

[sqlite3の](https://docs.python.org/3/library/sqlite3.html)モジュールは、 ''使用するプレースホルダとして?。 –

+0

それを試してみてください。 '%'の代わりに同じエラーが出ます。 '?'が表示されます。 –

+1

ああ、識別子(テーブルの名前)を渡そうとしていません。プレースホルダを使用しても機能しません。文字列に書式を設定する必要があります。たとえば、http://stackoverflow.com/questions/3247183/variable-table-name-in-sqliteを参照してください。 –

答えて

0

あなたが使用することができます。

sql = '''SELECT * FROM {0} WHERE URL= {1}'''.format(table, url) 
関連する問題