Python의 SQLite 매개변수 대체 오류 수정
목록을 기반으로 특정 값에 대해 데이터베이스를 반복적으로 쿼리할 때 일반적인 함정이 발생합니다. "?"의 사용 매개변수 대체 방법. 이 방법은 SQL 주입을 방지하기 위한 것이지만 올바르게 사용하지 않으면 오류가 발생할 수 있습니다.
설명된 시나리오에서는 "sqlite3.ProgrammingError: 잘못된 바인딩 수가 제공되었습니다."라는 오류가 발생합니다. 이는 Execution() 메소드에 제공된 매개변수 수가 예상한 수와 일치하지 않음을 나타냅니다.
이 오류는 데이터베이스 테이블을 처음 생성할 때 발생합니다. 이 테이블에는 8개의 열이 있으므로 8개의 매개변수가 필요합니다. 해당 삽입 또는 업데이트 쿼리. 그러나 "?"를 사용하는 경우 대체 메서드에서 두 번째 매개 변수는 단일 문자열이 아닌 바인딩할 값만 포함하는 시퀀스여야 합니다.
이 문제를 해결하려면 다음과 같이 실행() 메서드를 호출해야 합니다.
<code class="python">self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", [item])</code>
단일 요소([item])가 포함된 목록을 두 번째 매개변수로 전달하면 올바른 수의 바인딩이 제공되고 오류가 방지됩니다. 또한 제안된 양식을 사용하는 것은 sqlite3 커서 개체에 대한 Python 라이브러리 참조에 설명된 권장 사항과 일치합니다.
위 내용은 데이터베이스를 쿼리할 때 Python에서 SQLite 매개변수 대체 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!