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 サイトの他の関連記事を参照してください。