Správný způsob zápisu připravených příkazů je následující:
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()
Chyba pochází ze skutečnosti, že modul mysql nenašel, kam umístit parametry, které mu dáváte, protože neinterpretuje otazníky jako zástupné symboly, a proto vytváří chybu, která vám říká, že _mysql_exceptions.ProgrammingError: not all arguments converted during string formatting
, což v lidské řeči znamená, že se vaše agumenty nevešly do formátovacího řetězce.