ホームページ  >  記事  >  バックエンド開発  >  データベースのクエリ時に Python で SQLite パラメータ置換エラーを修正する方法

データベースのクエリ時に Python で SQLite パラメータ置換エラーを修正する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-19 15:25:02374ブラウズ

How to Fix SQLite Parameter Substitution Error in Python When Querying a Database?

Python の SQLite パラメータ置換エラーを修正

リストに基づいてデータベースに特定の値を反復的にクエリする場合、一般的な落とし穴が発生します。 「?」の使用パラメータ置換メソッド。このメソッドは SQL インジェクションを防ぐことを目的としていますが、正しく使用しないとエラーが発生する可能性があります。

説明したシナリオでは、次のエラーが発生します:「sqlite3.ProgrammingError: Incorrect number of bindings provided.」これは、execute() メソッドに指定されたパラメータの数が予期した数と一致しないことを示します。

このエラーは、データベース テーブルの最初の作成に起因します。データベース テーブルには 8 つの列があるため、データベース テーブルに 8 つのパラメータが必要です。対応する挿入または更新クエリ。ただし、「?」を使用する場合は、

この問題を解決するには、execute() メソッドを次のように呼び出す必要があります。

<code class="python">self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", [item])</code>
>

単一の要素 ([item]) を 2 番目のパラメーターとして含むリストを渡すことで、正しい数のバインディングが提供され、エラーが回避されます。さらに、推奨されるフォームの使用は、sqlite3 カーソル オブジェクトの Python ライブラリ リファレンスで概説されている推奨事項と一致します。

以上がデータベースのクエリ時に Python で SQLite パラメータ置換エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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