>데이터 베이스 >MySQL 튜토리얼 >Python의 변수에 저장된 매개변수화된 SQL 쿼리를 실행할 수 있습니까?

Python의 변수에 저장된 매개변수화된 SQL 쿼리를 실행할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-12 08:32:42537검색

Can I Execute Parameterized SQL Queries Stored in a Variable in Python?

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

SQL 삽입을 방지하려면 Python에서 매개변수화된 SQL 쿼리를 실행할 때 일반적으로 다음 형식을 사용하는 것이 좋습니다.

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

하지만 쿼리를 변수에 저장하고 나중에 실행할 수 있는지에 대한 질문은 탐구해 볼 가치가 있습니다.

execute() 메소드 서명

이것이 작동하지 않는 이유를 이해하려면 execute() 메서드의 서명을 확인해야 합니다.

<code class="language-python">cursor.execute(self, query, args=None)</code>

이 방법에는 쿼리와 선택적 매개변수 시퀀스 또는 맵 등 최대 3개의 매개변수가 필요합니다.

변수에서 쿼리를 실행해 보세요

sql 변수에 저장된 쿼리를 실행하려고 하면 예를 들면 다음과 같습니다.

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

sql에는 변수 자체를 포함하여 4개의 매개변수가 포함되어 있으므로 오류가 발생합니다.

별도의 쿼리 및 매개변수

변수에서 쿼리를 실행하려면 쿼리와 매개변수를 분리하면 됩니다.

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

이 경우 sql에는 쿼리가 포함되고 args에는 매개변수가 포함됩니다. execute(sql, args)을 지정하면 매개변수화된 쿼리를 성공적으로 실행할 수 있습니다.

다른 방법

또는 보다 직관적인 두 변수 접근 방식을 사용할 수 있습니다.

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

이 접근 방식을 사용하면 쿼리와 매개변수에 대해 별도의 변수를 만들 필요가 없습니다.

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

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