Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

UnboundLocalError:स्थानीय चर 'कर्सर' असाइनमेंट से पहले संदर्भित

आप केवल conn . परिभाषित करते हैं और cursor अगर ब्लॉक के अंदर फॉर्म वैल्यू की जांच कर रहा है। यदि ब्लॉक दर्ज नहीं किया गया है, तो वे परिभाषित नहीं हैं, लेकिन फिर भी आप उन्हें वैसे भी बंद करने के लिए संदर्भित करने का प्रयास करते हैं। आपको केवल close पर कॉल करना चाहिए दोनों पर यदि आपने उन्हें परिभाषित किया है। या तो स्थानांतरित करें conn = और cursor = if ब्लॉक से पहले, या close . को स्थानांतरित करें ब्लॉक के भीतर कॉल करता है।

हालांकि, बड़ी समस्या यह है कि आप फ्लास्क-माईएसक्यूएलडीबी का उपयोग करने के तरीके को गलत समझ रहे हैं/अधिक जटिल कर रहे हैं। यह स्वचालित रूप से कनेक्शन बनाएगा और अनुरोध पूरा होने पर इसे बंद कर देगा, जो कर्सर को भी बंद कर देता है। दस्तावेज़ में बताए अनुसार बस एक्सटेंशन का उपयोग करें ।

...
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. GMT समय को EST . में बदलें

  2. तालिका की दूसरी अंतिम पंक्ति mysql

  3. Php . में किसी तालिका में एकाधिक मान कैसे सम्मिलित करें

  4. ETIMEDOUT त्रुटि जब mysql डेटाबेस क्वेरी कर रहा है

  5. mysqld:डीआईआर को डेटा में नहीं बदल सकता। सर्वर प्रारंभ नहीं होता है