2016-10-29 8 views
0

が供給され、上記の課題への関数である:sqlite3.ProgrammingError:指定された数のバインディングが正しくありません。現在のステートメントは、0を使用し、2 I iは、以下の、データベースに保存したい、そこから、その後、特定の詳細については、サイトをクロールしています

def store(title, body): 
    conn = sqlite3.connect('test2.db') 
    print("Connection established") 
    conn.execute("insert into crawled (title, body) values (\"%s\", \"%s\");",(title, body)) 
    conn.commit() 
    print("Records Created Successfully") 
    conn.close() 

けどこのエラーを取得しておいてください。

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

私はスタックで利用可能なソリューションのすべてを行っているが、どれも私の問題を解決されていない、してくださいすることができ、そこに誰かが私に私のエラーを表示してください。

+0

[documentation](https://docs.python.org/2/library/sqlite3.html)では、パラメータの使用方法について説明しています。 –

+0

構文上の問題がありますか?あなたは "?" "%s"の代わりに "%s"の記号を使用しています。 "("、()、?); "、(タイトル、本文)) – user2660966

+0

私はすべてを試しました。シンボル、まだ動作していない –

答えて

0

問題は、小さな構文エラーに起因するようです。実行コマンドの使用については

conn.execute("insert into crawled (title, body) values (\"%s\", \"%s\");" %(title, body)) 

%(title, body)の開始時に%、それの前にカンマがないこと。

または:

conn.execute("insert into crawled (title, body) values (?, ?);",(title, body)) 

注括弧の前にカンマと?周りの引用符の欠如。

sqlite3 documentationに必要なすべての情報が必要です。潜在的なSQLインジェクション攻撃を回避するには、オプション2を使用する方がよいことに注意してください。

関連する問題