잘못된 바인딩 개수
아래 코드를 사용하여 SQLite 데이터베이스에 문자열을 삽입하려고 하면 잘못된 숫자를 나타내는 오류가 발생합니다. of 바인딩:
def insert(array): connection=sqlite3.connect('images.db') cursor=connection.cursor() cnt=0 while cnt != len(array): img = array[cnt] cursor.execute('INSERT INTO images VALUES(?)', (img)) cnt+= 1 connection.commit() connection.close()
삽입할 문자열이 74자일 때 오류 메시지가 나타납니다. long.
문제의 근본
코드는 일련의 항목을 바인드 값으로 실행() 메소드에 전달하려고 시도합니다. 그러나 바인드 값 매개변수에는 튜플이 필요하며 코드는 튜플을 생성하는 데 필요한 쉼표 제공을 무시합니다.
cursor.execute('INSERT INTO images VALUES(?)', (img)) # Missing comma
수정
문제가 발생하면 바인드 값 매개변수 끝에 쉼표를 추가하여 tuple:
cursor.execute('INSERT INTO images VALUES(?)', (img,))
또는 유효한 시퀀스로도 인식되는 목록 리터럴을 사용할 수 있습니다.
cursor.execute('INSERT INTO images VALUES(?)', [img])
두 가지 수정 사항을 모두 사용하면 코드가 이미지 경로를 올바르게 삽입합니다. 잘못된 바인딩 수에 대한 오류 메시지를 표시하지 않고 데이터베이스에 추가됩니다.
위 내용은 긴 문자열에 대해 \'잘못된 바인딩 수\'로 인해 내 SQLite INSERT 문이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!