1
我有一個非常令人沮喪的問題Python 2.7版的問題sqlite3.Cursor.execute功能
我已經接受光標到sqlite3.Connection對象,然後函數修改數據庫
我的代碼是什麼像這樣:
#DOES NOT WORK
def update(dbc, tableName, value, value2):
dbc.execute("update ? set MyValue = ? where Something = ?;",\
[tableName, value, value2])
#WORKS
def update2(dbc, tableName value, value2):
dbc.execute("update {0} set MyValue = {1} where Something = {2};".format(
tableName, value, value2))
db = sqlite3.connect('data.db')
c = db.cursor()
c.execute("begin;")
update(c,"Something","Something Else") #FAILS
update2(c,"Something","Something Else") #OK
我得到的錯誤:
sqlite3.OperationalError:近 「?」:語法錯誤
我試過註釋掉第一個execute(「begin;」)語句,因爲我不太瞭解它,但是我知道它會在其他部分顯着加速我的代碼,而不必提交每一個輸入。有沒有人有線索爲什麼會發生這種情況?
好吧,我猜它不適用於表名bleh。解決方案是在這裏:http://stackoverflow.com/questions/228912/sqlite-parameter-substitution-problem –
我看到你是新來的。歡迎。你可以回答你自己的問題,不要把它留下。 – Eduardo
不能再繼續7個小時。我想明天會做。 –