2012-04-03 19 views
3

を供給結合の数が正しくありませんが、次のPythonスクリプトを使用して、データベースの外に読んでいます:はSQLiteのとPythonでデータベースからの読み込み:

IDは、この場合「ジョナサン」で、誰かの名前である
cur.execute("SELECT * FROM pending where user = ?", (ID)) 

。私はこのスクリプトを実行しようとすると、

はしかし、私はSQLiteのに非常に新しいです

Traceback (most recent call last): 
    File "/usr/lib/pymodules/python2.7/cherrypy/_cprequest.py", line 606, in respond 
    cherrypy.response.body = self.handler() 
    File "/usr/lib/pymodules/python2.7/cherrypy/_cpdispatch.py", line 25, in __call__ 
    return self.callable(*self.args, **self.kwargs) 
    File "proj1base.py", line 470, in editFriends 
    cur.execute("SELECT * FROM pending where user = ?", (ID)) 
ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 8 supplied. 

というエラーを取得するので、私は、私はちょうど構文では非常に愚かなミスを犯した推測しています。しかし、しばらくの間オンラインで検索した後、私は他のものとは異なる何かを見つけることができないようです。

ご協力いただければ幸いです。コードがもっと必要な場合は、私に知らせてください。

ありがとうございました

答えて

9

バインディングの値のシーケンスを指定する必要があります。 IDは文字列なので、8個の値のシーケンスのように見えます。

おそらく(ID)は1つの要素を持つタプルであるべきだと考えているかもしれませんが、そうではありません。括弧はPythonのタプル作成構文ではありません(空のタプルを除く)。カンマがあります。代わりに(ID,)を使用して、1つの要素を含むタプルを取得します。あるいは、リストを使用してください:[ID]

関連する問題