집 >데이터 베이스 >MySQL 튜토리얼 >MySQL IN 절에서 Python 목록을 안전하게 사용하는 방법은 무엇입니까?
MySQL 쿼리에서 IN 절의 ID 목록을 사용하려고 할 때 다음이 필수적입니다. 잠재적인 SQL 주입 취약점을 방지하여 작업의 안전을 보장합니다. 목록을 문자열에 매핑하고 이를 쿼리에서 직접 사용하면 취약하므로 더 안전한 접근 방식은 목록을 매개변수로 직접 사용하는 것입니다.
이를 달성하려면 형식 문자열을 활용하여 다음을 수행할 수 있습니다. 목록의 길이에 따라 적절한 수의 자리 표시자(%s)를 생성합니다. 그런 다음 목록 자체가 튜플 형태로 실행() 함수에 전달되므로 수동으로 인용하고 이스케이프할 필요가 없습니다.
format_strings = ','.join(['%s'] * len(list_of_ids)) cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))
데이터(list_of_ids)를 매개변수로 보내면 다음에서 처리됩니다. MySQL의 드라이버를 직접 사용하여 주입 위험을 제거합니다. 이 방법을 사용하면 추가 삭제나 인용 없이 문자열 내의 모든 문자를 보존할 수 있습니다.
위 내용은 MySQL IN 절에서 Python 목록을 안전하게 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!