Not All Parameters Were Used in the SQL Statement (Python, MySQL)

Not all parameters were used in the SQL statement (Python, MySQL)

The parameter marker is %s not %d.

add_user = """INSERT INTO DB.tbluser 
(username, department, startyear, currentpos, link)
VALUES (%s, %s, %s, %s, %s)"""

Note that the parameter markers used by mysql.connector may look the same as the %s used in Python string formatting but the relationship is only coincidental. Some database adapters like oursql and sqlite3 use ? as the parameter marker instead of %s.

Not all parameters were used in the SQL statement Python - MySql

The second argument to execute() should be a sequence of values, one for each placeholder token %s in the query.

You did pass a sequence, but not in the way you intended. Strings are sequences, so you actually passed a sequence of four values - T, E, S, T, which is too many values, because the query only has one placeholder token.

Pass the string as a one-element tuple, like so:

args = ("TEST",)
sql = """SELECT * FROM musics WHERE Id = %s"""
dbc.execute(sql, args)


Related Topics



Leave a reply



Submit