2012-06-10 84 views
0

我不熟悉Flask/SQLite,但我試圖在數據庫中一次插入多個項目。插入多個項目到數據庫錯誤

g.db.execute('insert into images(fileName, fileTitle, file_height, file_width, file_size) values (?,?,?,?,?)', filename, request.form['title'], fileMetaData['height'], fileMetaData['width'], fileMetaData['fileSize']) 

運行這給了我一個

TypeError: function takes at most 2 arguments (6 given)

什麼是最好的方式去去這樣做呢?我明白這個錯誤,但我不明白我該怎麼做。

回答

2

我相信參數必須是一個元組:

g.db.execute('insert into images(fileName, fileTitle, file_height, file_width, file_size) values (?,?,?,?,?)', (filename, request.form['title'], fileMetaData['height'], fileMetaData['width'], fileMetaData['fileSize'])) 
+0

它似乎運行正常,對我並沒有把一個錯誤。只需要檢查。它的工作,謝謝。我只是按照他在Flaskr教程中閱讀的內容閱讀。 – AllofHumanity

+1

這是迂腐,我知道,但它是一個元組,而不是一個列表。 如果你想只傳遞一個項目,你需要像這樣創建一個單例元組: 'g.db.execute(「SELECT name FROM users WHERE user_id =?」,(user_id,))' (注意尾隨逗號) – MalphasWats