2017-05-25 11 views
0

私はパラメータを介してクエリに値を渡しています。python(sqlite3)のsqlクエリに変数を渡す

import sqlite3 

def top10(restaurant): 
    con = sqlite3.connect('example.db') 
    cur = con.cursor() 
    t = (restaurant,) 
    cur.execute("SELECT * from orchard WHERE CUISINE_DESCRIPTION LIKE '%?%' ORDER BY SCORE;", t) 
    return cur.fetchone() 
print(top10("thai")) 

私は次のエラーを取得する:

sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 0, and there are 1 supplied. 

私はそれをトリガー何かわからない問題は、次のコードを実行するときにということです。 は、ここで私が代わりに変数を渡すのthaiと呼ばれる値を埋め込む際に正常に実行ものです:

cur.execute("SELECT * from orchard WHERE CUISINE_DESCRIPTION LIKE '%thai%' ORDER BY SCORE;") 

間違っている可能性が何?変数 `トン=作るときやったときに

答えて

-1

`動作しませんでした( '%' +レストラン+ '%')= T 'に `(レストラン、)これは代わりに

cur.execute("SELECT * from orchard WHERE CUISINE_DESCRIPTION LIKE ? ORDER BY SCORE;", '%'+t+'%') 
+0

これは働いてみスニペットのようにクエリに –

関連する問題