Mysql
 sql >> Database >  >> RDS >> Mysql

Il numero di parametri di query MySQL corrisponde agli argomenti passati per l'esecuzione, ma Python non solleva tutti gli argomenti convertiti

Il modo corretto di scrivere le dichiarazioni preparate è il seguente:

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

L'errore deriva dal fatto che il modulo mysql non trova dove inserire i parametri che gli stai dando, perché non interpreta i punti interrogativi come segnaposto e quindi produce un errore che ti dice che _mysql_exceptions.ProgrammingError: not all arguments converted during string formatting , che nel linguaggio umano significa che non può contenere i tuoi aguments nella stringa di formato.