プリペアドステートメントを書く正しい方法は次のとおりです。
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()
このエラーは、疑問符をプレースホルダーとして解釈しないため、mysqlモジュールが指定したパラメーターを配置する場所を見つけられないため、_mysql_exceptions.ProgrammingError: not all arguments converted during string formatting
、これは人間の言語では、フォーマット文字列にアグメントを収めることができなかったことを意味します。