SQLite3의 바인딩 오류
sqlite3을 사용하여 여러 바인딩이 포함된 SQL 쿼리를 실행하려고 하면 "잘못된 바인딩 수가 잘못되었습니다"라는 메시지가 나타날 수 있습니다. 제공됨" 오류 메시지가 나타납니다. 이 오류는 제공된 바인딩 수가 쿼리에 정의된 매개변수 수와 일치하지 않을 때 발생합니다.
예제 코드에서:
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()
74자 길이의 문자열을 삽입하려고 할 때 , 바인딩 수와 매개변수 수가 일치하지 않음을 나타내는 오류 메시지가 표시됩니다.
이 문제를 해결하려면 매개변수로 유효한 시퀀스를 전달해야 합니다. 이 경우 img 변수 주변의 괄호에는 튜플을 생성하기 위한 쉼표가 포함되어야 합니다.
cursor.execute('INSERT INTO images VALUES(?)', (img,))
또는 목록 리터럴을 사용할 수 있습니다.
cursor.execute('INSERT INTO images VALUES(?)', [img])
매개변수를 수정하여 , 쿼리에 대한 올바른 바인딩 수를 제공하여 오류를 해결하고 데이터를 성공적으로 삽입할 수 있습니다.
위 내용은 내 SQLite3 코드에서 \'잘못된 바인딩 수가 제공되었습니다\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!