집 >데이터 베이스 >MySQL 튜토리얼 >내 Python MySQL 코드에서 'SQL 문에 모든 매개변수가 사용되지 않았습니다' 오류가 발생하는 이유는 무엇입니까?
MySQL 문에 모든 매개변수가 사용되지 않음: Python 문제 해결
소개
실행 시 Python 및 mysql.connector 라이브러리를 사용하는 SQL 쿼리에서는 SQL 문의 매개변수 표시자를 커서에 전달된 데이터입니다. 그렇지 않으면 "SQL 문에 모든 매개 변수가 사용되지 않았습니다." 오류가 발생할 수 있습니다.
오류 발생
다음 코드 조각을 고려하세요.
import mysql.connector Name = "James" Department = "Finance" StartYear = 2001 CurrentPos = 2001 Link = "" add_user = ("INSERT INTO DB.tbluser " "(username, department, startyear, currentpos, link) " "VALUES (%s, %s, %d, %d, %s)") data_user = (Name, Department, StartYear, CurrentPos, Link)
cursor.execute() 메소드를 사용하여 이 코드를 실행하면 "SQL에서 모든 매개변수가 사용되지 않았습니다. 문" 오류입니다.
분석
StartYear 및 CurrentPos 필드에 대한 매개 변수 표시가 올바르지 않기 때문에 오류가 발생합니다. %d 마커는 정수에 사용되는 반면 SQL 문은 모든 매개변수에 대해 %s 마커를 지정합니다.
해결책
오류를 해결하려면 %d 마커를 사용해야 합니다. %s 마커로 대체:
add_user = """INSERT INTO DB.tbluser (username, department, startyear, currentpos, link) VALUES (%s, %s, %s, %s, %s)"""
이 변경을 통해 모든 매개변수가 SQL 문에 올바르게 표시되고 올바르게 바인딩될 수 있습니다. 커서에 전달된 데이터에.
참고
mysql.connector의 매개변수 표시가 Python 문자열 형식화에 사용되는 %s와 유사하지만 두 구문은 서로 다릅니다. . 다른 데이터베이스 어댑터는 ?와 같은 다른 매개변수 표시자를 사용할 수 있습니다. oursql과 sqlite3에서.
위 내용은 내 Python MySQL 코드에서 'SQL 문에 모든 매개변수가 사용되지 않았습니다' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!