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

Antallet af MySQL-forespørgselsparametre matcher argumenter, der er sendt til udførelse, men Python rejser ikke alle konverterede argumenter

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.




  1. Brug af Transaction ROLLBACK i SQL Server

  2. Sådan får du svarende til ResultSetMetaData uden ResultSet

  3. Mysqli-forespørgsel med et SET-variabelt udsagn (dvs. flere forespørgsler)

  4. Hvordan udfører man den samme aggregering på hver kolonne uden at angive kolonnerne?