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

UnboundLocalError:zmienna lokalna „kursor”, do której odwołuje się przed przypisaniem

Definiujesz tylko conn i cursor wewnątrz bloku if sprawdzającego wartości formularza. Jeśli blok nie jest wprowadzony, nie jest zdefiniowany, ale nadal próbujesz się do niego odwoływać, aby mimo wszystko je zamknąć. Powinieneś tylko zadzwonić close na obu, jeśli je zdefiniowałeś. Albo przenieś conn = i cursor = przed blokiem if lub przesuń close wzywa do wewnątrz bloku.

Jednak większym problemem jest to, że nie rozumiesz/nadmiernie komplikujesz, jak używać Flask-MySQLdb. Automatycznie utworzy połączenie i zamknie je po zakończeniu żądania, co spowoduje również zamknięcie kursora. Po prostu użyj rozszerzenia zgodnie z opisem w dokumentacji .

...
cur = mysql.connection.cursor()
cur.callproc('sp_createUser', (name, email, hashed_password))
data = cur.fetchall()
...


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wygeneruj tabelę INFORMATION_SCHEMA dla bazy danych MySQL

  2. WSTAW bieżącą datę lub godzinę do MySQL

  3. Sesja SQLAlchemy i relacja połączenia

  4. MySQL:SELECT i COUNT w tym samym zapytaniu

  5. Jak:dopasować (spacja wyszukiwania) do (połączyć z kolumną z innej tabeli)