sql >> Databasteknik >  >> RDS >> Mysql

UnboundLocalError:lokal variabel 'cursor' som refereras till före tilldelning

Du definierar bara conn och cursor inuti if-blocket kontrollerar formulärvärdena. Om blocket inte anges är de inte definierade, men du försöker fortfarande hänvisa till dem för att stänga dem ändå. Du ska bara ringa close på båda om du har definierat dem. Flytta antingen conn = och cursor = till före if-blocket, eller flytta close anrop inom blocket.

Det större problemet är dock att du missförstår/överkomplicerar hur man använder Flask-MySQLdb. Den kommer automatiskt att skapa anslutningen och stänga den när begäran är klar, vilket också stänger markören. Använd helt enkelt tillägget enligt beskrivningen i dokumenten .

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


  1. mysql fulltext MATCH, MOT ger 0 resultat

  2. Där inte existerar en Laravel

  3. OBJECTPROPERTY() vs OBJECTPROPERTYEX() i SQL Server:Vad är skillnaden?

  4. Få OLD Value i MySQL Trigger EFTER uppdateringsutlåtande