매개변수화된 SQL 쿼리에 Python에서 변수 사용
Python에서는 매개변수화된 SQL 쿼리가 SQL 삽입을 방지하는 데 매우 중요합니다. 권장되는 접근 방식은 변수를 실행 함수에 직접 전달하는 것이지만 경우에 따라 변수를 사용하여 쿼리 자체를 나타내는 것이 바람직할 수도 있습니다.
변수로 쿼리: 구문 오류
아래 표시된 대로 변수에서 직접 SQL 쿼리를 실행하려고 하면 구문 오류가 발생합니다.
<code>sql = "INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3 cursor.execute(sql)</code>
기능 실행
cursor.execute
함수의 서명은 최대 3개의 매개변수를 허용하도록 지정합니다.
<code>cursor.execute(self, query, args=None)</code>
따라서 쿼리와 매개변수가 포함된 변수를 하나의 매개변수로 전달하는 것은 올바르지 않습니다.
솔루션
이 문제를 해결하려면 두 가지 가능한 해결책이 있습니다.
매개변수로 확장된 튜플:
<code>sql_and_params = "INSERT INTO table VALUES (%s, %s, %s)", var1, var2, var3 cursor.execute(*sql_and_params)</code>
그러나 이 접근 방식은 튜플에 3개 이상의 요소가 있는 경우 오류가 발생할 수 있습니다.
쿼리와 매개변수 분리:
또는 쿼리와 매개변수를 분리할 수도 있습니다.
<code>sql = "INSERT INTO table VALUES (%s, %s, %s)" args = var1, var2, var3 cursor.execute(sql, args)</code>
이 방법은 더 장황하지만 올바른 수의 매개변수가 실행 함수에 전달되도록 보장합니다.
위 내용은 Python의 `cursor.execute()` 함수를 사용하여 SQL 쿼리의 변수를 어떻게 안전하게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!