Python の SQL ステートメントでの変数の使用
Python で SQL ステートメントを処理する場合、クエリに変数を組み込む必要がある場合があります。これらのクエリを正しく実行するには、SQL テキスト自体の一部として変数名を含めないようにすることが重要です。
シナリオ例:
次のコードを考えてみましょう。
cursor.execute("INSERT INTO table VALUES var1, var2, var3")
ここで、var1 は整数、var2 と var3 は文字列です。この方法では、Python が変数名をクエリの一部として解釈し、無効な SQL ステートメントが発生するため、エラーが発生します。
解決策:
これを解決するには、SQL ステートメントでプレースホルダーを使用し、execute() メソッドを使用して変数値をタプルとして渡す必要があります。修正されたコードは次のとおりです:
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
この例では、プレースホルダー %s は変数値を表し、タプル (var1、var2、var3) にはデータベースに挿入される実際の値が含まれています。
注: 複数のパラメータを渡すにはタプルを使用することが不可欠です。単一のパラメータを渡す必要がある場合でも、末尾にカンマを付けたタプルを使用する必要があります。
cursor.execute("INSERT INTO table VALUES (%s)", (var1,))
利点:
プレースホルダーとタプルを使用すると、いくつかの利点があります。 :
以上がPython 内の SQL クエリで変数を安全に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。