0
同じ問題について多くの質問がありますが、私の問題の解決策は見つかりませんでした。sqlite3.ProgrammingError:不正な数のバインディングが指定されています - sqliteで検出された番号が正しくありません
私の知識ではタプルの問題ではありません。
2つの疑問符を含むクエリに2のタプルを渡します。 SQLiteはそれだけで必要と言う1.
CODE:私はできません
SELECT id from tbl_recipes where name = '?' and categoryId = ?
('SomeName', 6)
Traceback (most recent call last):
File "C:\Users\Peter\AppData\Local\Programs\Python\Python35-32\lib\site-packages\bottle.py", line 862, in _handle
return route.call(**args)
File "C:\Users\Peter\AppData\Local\Programs\Python\Python35-32\lib\site-packages\bottle.py", line 1732, in wrapper
rv = callback(*a, **ka)
File "calculator.py", line 106, in finishEdit
recipes.updateRecipe(categoryId, name, ingredientList)
File "C:\Users\Peter\Documents\perso\costCalculator\recipes.py", line 40, in updateRecipe
recId = getRecipeId(categoryId, name)
File "C:\Users\Peter\Documents\perso\costCalculator\recipes.py", line 36, in getRecipeId
result = sql.getOne(query, (name, int(categoryId)))
File "C:\Users\Peter\Documents\perso\costCalculator\sql.py", line 59, in getOne
c.execute(query, parameters)
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 2 supplied.
のため:私はgetRecipeId呼び出すと
def getRecipeId(categoryId, name):
query = "SELECT id from tbl_recipes where name = '?' and categoryId = ?"
result = sql.getOne(query, (name, int(categoryId)))
print(result)
def getOne(query, parameters =()):
conn = sqlite3.connect(db.name)
c = conn.cursor()
print(query)
print(parameters)
c.execute(query, parameters)
a = c.fetchone()
return a
は(6を、 "somenameの")、私は出力として得ます私の人生は私が間違っていることを検出します。
「最初の周りを削除しますか?最初のパラメータとして文字列を渡しますか? – rocksteady