>백엔드 개발 >파이썬 튜토리얼 >데이터베이스를 쿼리할 때 Python에서 SQLite 매개변수 대체 오류를 수정하는 방법은 무엇입니까?

데이터베이스를 쿼리할 때 Python에서 SQLite 매개변수 대체 오류를 수정하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-19 15:25:02481검색

How to Fix SQLite Parameter Substitution Error in Python When Querying a Database?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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