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

Wstawianie zmiennych MySQL za pomocą Pythona, nie działa

Musisz przekazać instrukcję SQL i parametry jako osobne argumenty:

cursor.execute(loggit[0], loggit[1])

lub użyj składni zmiennych argumentów (splat, * ) :

cursor.execute(*loggit)

Twoja wersja próbuje przekazać krotkę zawierającą instrukcję SQL i parametry wiążące jako jedyny argument, gdzie .execute() funkcja oczekuje, że znajdzie tylko ciąg instrukcji SQL.

Bardziej typowe jest trzymanie tych dwóch oddzielnych i być może przechowywanie tylko instrukcji SQL w zmiennej:

loggit = """
        INSERT INTO logger (logged_info, dummy)
        VALUES
            (%s, %s)
    """
cursor.execute(loggit, (bob, dummyVar))



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bardzo powolne usuwanie w bazie mysql za pomocą podzapytania

  2. Jak zwrócić tabelę z funkcji MySQL

  3. Co to jest PyMySQL i czym różni się od MySQLdb? Czy może to wpłynąć na wdrożenie Django?

  4. Błąd składni SQL podczas tworzenia procedury składowanej w MySQL

  5. Jak używać polecenia „select” w instrukcji „insert” MySQL