>백엔드 개발 >파이썬 튜토리얼 >내 SQLite3 코드에서 \'잘못된 바인딩 제공\' 오류가 발생하는 이유는 무엇입니까?

내 SQLite3 코드에서 \'잘못된 바인딩 제공\' 오류가 발생하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-05 01:15:101008검색

Why Does My SQLite3 Code Throw an

SQLite3 오류: 잘못된 바인딩이 제공됨

바인드 매개변수를 사용하여 SQL 쿼리를 실행할 때 올바른 수의 바인딩이 제공되었는지 확인하는 것이 중요합니다. 해당 코드에서 다음 오류가 발생했습니다.

sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 74 supplied

코드를 검토한 결과:

def insert(array):
    connection = sqlite3.connect('images.db')
    cursor = connection.cursor()
    cnt = 0
    while cnt != len(array):
        img = array[cnt]
        print(array[cnt])
        cursor.execute('INSERT INTO images VALUES(?)', (img))
        cnt += 1
    connection.commit()
    connection.close()

바인드 매개변수가 지정되는 방식에 문제가 있다는 것이 분명해졌습니다. cursor.execute 문에서:

cursor.execute('INSERT INTO images VALUES(?)', (img))

오류를 해결하려면 쉼표를 사용하여 튜플:

cursor.execute('INSERT INTO images VALUES(?)', (img,))

또는 목록 리터럴을 사용할 수 있습니다.

cursor.execute('INSERT INTO images VALUES(?)', [img])

바인드 매개변수가 튜플이나 목록으로 올바르게 제공되었는지 확인하면 올바른 바인딩 수가 사용하여 오류를 해결했습니다.

위 내용은 내 SQLite3 코드에서 \'잘못된 바인딩 제공\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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