sql >> Databasteknik >  >> RDS >> Mysql

Antalet MySQL-frågeparametrar matchar argument som skickats för att köras, men Python väcker inte alla konverterade argument

Det korrekta sättet att skriva förberedda uttalanden är följande:

def create_student(surname, forename, dob, address, phone, gender, tutor, email):
    cursor = mysql.connection.cursor()
    cursor.execute('''
        INSERT INTO students(surname, forename, dob, address, phone, gender, tutor, email)
        VALUES(%s, %s, %s, %s, %s, %s, %s, %s)''', (surname, forename, dob, address, phone, gender, tutor, email))
    mysql.connection.commit()

Felet kommer från det faktum att mysql-modulen inte hittar var den ska placera parametrarna du ger den, eftersom den inte tolkar frågetecknen som platshållare, och därför producerar ett fel som talar om för dig att _mysql_exceptions.ProgrammingError: not all arguments converted during string formatting , vilket på mänskligt språk betyder att det inte kunde passa dina argument i formatsträngen.




  1. MySQL jokertecken i välj

  2. Isolationsnivå med Flask-SQLAlchemy

  3. REMAINDER() Funktion i Oracle

  4. Stumped SQL-undantag för JDBC