Mysql
 sql >> база данни >  >> RDS >> Mysql

UnboundLocalError:локална променлива „курсор“, посочена преди присвояването

Вие дефинирате само conn и cursor вътре в блока if, проверявайки стойностите на формуляра. Ако блокът не е въведен, те не са дефинирани, но въпреки това се опитвате да ги препратите, за да ги затворите. Трябва само да се обадите на close и на двете, ако сте ги дефинирали. Или преместете conn = и cursor = до преди блока if или преместете close извиквания в рамките на блока.

По-големият проблем обаче е, че не разбирате/прекомерно усложнявате как да използвате Flask-MySQLdb. Той автоматично ще създаде връзката и ще я затвори, когато заявката бъде изпълнена, което също затваря курсора. Просто използвайте разширението, както е описано в документите .

...
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. MySQL с меко изтриване, ограничения за уникален ключ и външни ключове

  2. RuntimeError:работи извън контекста на приложението

  3. Код за актуализиране на PHP/MySQL

  4. Как да проверите дали MySQL връзка е SSL криптирана?

  5. Как да спрете работеща mysql заявка