Den korrekte måde at skrive forberedte udsagn på er følgende:
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()
Fejlen kommer fra, at mysql-modulet ikke finder, hvor det skal placeres de parametre, du giver det, fordi det ikke fortolker spørgsmålstegnene som pladsholdere, og derfor producerer en fejl, der fortæller dig, at _mysql_exceptions.ProgrammingError: not all arguments converted during string formatting
, hvilket på menneskeligt sprog betyder, at det ikke kunne passe til dine argumenter i formatstrengen.