Pythonでデータベースクエリを処理する場合、通常、クエリステートメントに変数を含める必要があります。ただし、構文エラーやセキュリティの脆弱性を防ぐように動作するようにしてください。
次のPythonコードを検討してください:
cursor.execute("INSERT INTO table VALUES var1, var2, var3")
このコードでは、 var1
は整数です。ただし、Pythonが名前 var1
、 var2
、および var3
をクエリテキスト自体の一部として含めようとすると、問題が発生し、クエリの不変が生じます。
この問題を解決するために、データベースAPIによって提供されるプレースホルダー交換メカニズムを使用できます。プレースホルダーを使用してコードを書き換える方法は次のとおりです。
cursor.execute( "テーブル値に挿入(%s、%s、%s)"、(var1、var2、var3))
この改善されたコード:
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
%s は、値を記入するためのプレースホルダーを表します。
は、挿入する値を含むタプルです。
単一のパラメーターの場合、後続のコンマがあるタプルが必要であることに注意してください:cursor.execute( "テーブル値に挿入(%s)"、(var1、))
さらに、セキュリティの脆弱性を引き起こす可能性があり、データベースAPIがサポートしていないため、文字列のフォーマット演算子(%)を使用して変数を挿入しないようにします。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3