ホームページ >バックエンド開発 >Python チュートリアル >SQLite3 コードで「指定されたバインディングが正しくありません」エラーがスローされるのはなぜですか?

SQLite3 コードで「指定されたバインディングが正しくありません」エラーがスローされるのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-05 01:15:101007ブラウズ

Why Does My SQLite3 Code Throw an

SQLite3 エラー: 指定されたバインディングが正しくありません

バインド パラメーターを使用して SQL クエリを実行する場合、正しい数のバインディングが指定されていることを確認することが重要です。指定されたコードで、次のエラーが発生しました:

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

コードを検査すると、

def insert(array):
    connection = sqlite3.connect('images.db')
    cursor = connection.cursor()
    cnt = 0
    while cnt != len(array):
        img = array[cnt]
        print(array[cnt])
        cursor.execute('INSERT INTO images VALUES(?)', (img))
        cnt += 1
    connection.commit()
    connection.close()

バインド パラメーターの指定方法に問題があることが明らかになります。 Cursor.execute ステートメント内:

cursor.execute('INSERT INTO images VALUES(?)', (img))

エラーを解決するには、コンマを作成してタプル:

cursor.execute('INSERT INTO images VALUES(?)', (img,))

または、リスト リテラルを使用できます:

cursor.execute('INSERT INTO images VALUES(?)', [img])

バインド パラメーターがタプルまたはリストとして正しく指定されていることを確認することで、バインディングの正しい数が得られます。使用すると、エラーが解決されます。

以上がSQLite3 コードで「指定されたバインディングが正しくありません」エラーがスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。