Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Die Anzahl der MySQL-Abfrageparameter stimmt mit den zur Ausführung übergebenen Argumenten überein, aber Python löst nicht alle konvertierten Argumente aus

Die richtige Art, vorbereitete Anweisungen zu schreiben, ist die folgende:

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()

Der Fehler kommt von der Tatsache, dass das mysql-Modul nicht findet, wo es die von Ihnen angegebenen Parameter einfügen soll, weil es die Fragezeichen nicht als Platzhalter interpretiert, und daher einen Fehler erzeugt, der Ihnen sagt, dass _mysql_exceptions.ProgrammingError: not all arguments converted during string formatting , was in der menschlichen Sprache bedeutet, dass Ihre Argumente nicht in die Formatzeichenfolge passen konnten.