Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Liczba parametrów zapytania MySQL pasuje do argumentów przekazanych do wykonania, ale Python nie zwraca wszystkich argumentów przekonwertowanych

Prawidłowy sposób pisania przygotowanych oświadczeń jest następujący:

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

Błąd wynika z faktu, że moduł mysql nie znajduje miejsca, w którym umieścić parametry, które mu podajesz, ponieważ nie interpretuje znaków zapytania jako symboli zastępczych, a tym samym generuje błąd informujący, że _mysql_exceptions.ProgrammingError: not all arguments converted during string formatting , co w ludzkim języku oznacza, że ​​nie może zmieścić się w ciągu formatu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co oznacza INT(5) w mysql?

  2. Dlaczego warunek IN miałby być wolniejszy niż =w sql?

  3. Zaktualizuj kolumnę w bazie danych, w której maksymalna wartość php mysql

  4. Przechowywanie identyfikatorów GUID/UUID MySQL

  5. Jak wyświetlić obraz z mysql blob