>데이터 베이스 >MySQL 튜토리얼 >Python의 변수에 저장된 매개변수화된 SQL 쿼리를 실행하는 방법은 무엇입니까?

Python의 변수에 저장된 매개변수화된 SQL 쿼리를 실행하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-12 06:49:43898검색

How to Execute a Parameterized SQL Query Stored in a Variable in Python?

Python의 변수에 저장된 매개변수화된 SQL 쿼리 실행

Python에서 SQL 쿼리를 처리할 때 매개변수화된 쿼리를 사용하여 SQL 삽입을 방지하는 것이 중요합니다. 여기에는 매개변수 자리 표시자(예: '%s')를 실제 값이 포함된 변수로 바꾸는 작업이 포함됩니다.

일반적인 질문은 매개변수화된 SQL 쿼리를 변수에 저장한 다음 실행할 수 있는지 여부입니다. 구문과 이를 달성하는 방법을 살펴보겠습니다.

질문

다음 Python 코드를 고려하세요.

<code class="language-python">sql = "INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3
cursor.execute(sql)</code>

안타깝게도 cursor.execute()에서는 쿼리 문자열과 선택적 매개변수 등 최대 3개의 매개변수를 허용하기 때문에 이 코드에서는 오류가 발생합니다. 이 예에는 튜플 (sql, var1, var2, var3)으로 표시되는 4개의 매개변수가 있습니다.

솔루션

변수에서 매개변수화된 SQL 쿼리를 실행하는 방법에는 두 가지가 있습니다.

방법 1: 매개변수 확장

쿼리와 매개변수를 포함하는 튜플의 매개변수를 cursor.execute():

으로 확장할 수 있습니다.
<code class="language-python">sql_and_params = "INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3
cursor.execute(*sql_and_params)</code>

튜플을 4개의 매개변수로 확장하지만 어색해 보일 수 있습니다.

방법 2: 쿼리와 매개변수 분리

명확하게 설명하자면 SQL 쿼리와 매개변수를 두 개의 변수로 분리하는 것이 가장 좋습니다.

<code class="language-python">sql = "INSERT INTO table VALUES (%s, %s, %s)"
args = (var1, var2, var3)
cursor.execute(sql, args)</code>

이 접근 방식은 더 간결하고 읽기 및 유지 관리가 더 쉽습니다.

결론

요약하자면 Python의 변수에서 매개변수화된 SQL 쿼리를 실행할 때 매개변수를 확장하거나 쿼리와 매개변수를 서로 다른 변수로 분리해야 합니다. 두 번째 방법은 더 간단하고 간단하기 때문에 일반적으로 권장됩니다.

위 내용은 Python의 변수에 저장된 매개변수화된 SQL 쿼리를 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.