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

UnboundLocalError:lokal variabel 'cursor' refereret til før tildeling

Du definerer kun conn og cursor inde i if-blokken kontrollerer formularværdierne. Hvis blokken ikke er indtastet, er de ikke defineret, men du prøver stadig at henvise til dem for at lukke dem alligevel. Du bør kun ringe til close på begge, hvis du har defineret dem. Flyt enten conn = og cursor = til før if-blokken, eller flyt close opkald til inden for blokken.

Det større problem er dog, at du misforstår/overkomplicerer, hvordan du bruger Flask-MySQLdb. Den vil automatisk oprette forbindelsen og lukke den, når anmodningen er udført, hvilket også lukker markøren. Du skal blot bruge udvidelsen som beskrevet i dokumenterne .

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


  1. Hvorfor er den givne syntaks gyldig i mysql?

  2. Konsolidering af SQL Server Instance ved Clustering og stabling

  3. MySQL LIKE %string% ikke helt tilgivende nok. Noget andet jeg kan bruge?

  4. (Min)SQL fuld join med tre borde