ホームページ  >  記事  >  バックエンド開発  >  SQLite3 コードで「指定されたバインディングの数が正しくありません」エラーが発生するのはなぜですか?

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

Barbara Streisand
Barbara Streisandオリジナル
2024-11-27 08:49:17617ブラウズ

Why Am I Getting an

SQLite3 のバインディング エラー

sqlite3 を使用して複数のバインディングを持つ SQL クエリを実行しようとすると、「バインディングの数が正しくありません」というエラーが発生する場合があります。提供されました」というエラー メッセージが表示されます。このエラーは、提供されたバインディングの数がクエリで定義されたパラメーターの数と一致しない場合に発生します。

コード例の場合:

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()

長さ 74 文字の文字列を挿入しようとした場合を実行すると、バインディングの数とパラメーターの不一致を示すエラー メッセージが表示されます。

この問題を解決するには、有効なシーケンスをパラメータ。この場合、img 変数を囲むかっこには、タプルを作成するためのカンマを含める必要があります:

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

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

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

パラメーターを修正することにより、クエリに正しい数のバインディングを指定すると、エラーが解決され、データを正常に挿入できるようになります。

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

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