ホームページ > データベース > mysql チュートリアル > Python変数をSQLクエリに安全に組み込むにはどうすればよいですか?

Python変数をSQLクエリに安全に組み込むにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-25 15:46:12
オリジナル
500 人が閲覧しました

How Can I Safely Incorporate Python Variables into SQL Queries?

Python で変数を SQL クエリに組み込む

Python を使用して SQL クエリを実行する場合、多くの場合、変数をクエリに組み込む必要があります。たとえば、データベース テーブルにデータを挿入し、その値を変数に保存したい場合があります。

質問

次の Python コードを考えてみましょう:

<code class="language-python">cursor.execute("INSERT INTO table VALUES var1, var2, var3")</code>
ログイン後にコピー

ここで、var1 は整数、var2 と var3 は文字列です。 Python に変数名をクエリ テキストの一部として含めずに変数名を記述しようとすると、問題が発生します。

解決策

この問題を解決するには、SQL クエリでプレースホルダーを使用し、変数値をタプルとして渡すことができます。

<code class="language-python">cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))</code>
ログイン後にコピー

タプルには変数値が含まれており、パラメータが 1 つだけ渡された場合でも、タプルの末尾にカンマが追加されることに注意してください。これにより、変数がデータベース API によって適切にエスケープされ、引用符で囲まれることが保証されます。

警告

文字列フォーマット演算子 (%) はエスケープや引用符を実行せず、SQL インジェクション攻撃に対して脆弱であるため、変数置換には使用しないでください。

以上がPython変数をSQLクエリに安全に組み込むにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート