집 >데이터 베이스 >MySQL 튜토리얼 >Python의 변수에 저장된 매개변수화된 SQL 쿼리를 실행할 수 있습니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!