집 >데이터 베이스 >MySQL 튜토리얼 >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 중국어 웹사이트의 기타 관련 기사를 참조하세요!