यह आलेख आपको एक उदाहरण दिखाएगा कि पाइथन में MySQL संग्रहीत प्रक्रिया को कैसे कॉल करें। यह दोनों अजगर का उपयोग करेगा mysql-connector-python पुस्तकालय और अजगर pymysql पुस्तकालय।
<एच3>1. MySQL संग्रहीत कार्यविधि को Python चरणों में कॉल करें।
- दो MySQL संग्रहीत कार्यविधियाँ बनाएँ नीचे दिए गए स्रोत कोड का उपयोग करें।
- MySQL संग्रहित प्रक्रिया add_number .
उपयोग `dev2qa_example`; DROP प्रक्रिया अगर मौजूद है `add_number`;DELIMITER $$USE `dev2qa_example`$$CREATE PROCEDURE `add_number` (a int, b int, out sum int)BEGIN set sum =a + b; END$$DELIMITER;
- MySQL संग्रहीत कार्यविधि एकाधिक_संख्या .
उपयोग `dev2qa_example`; DROP प्रक्रिया अगर मौजूद है `multiple_number`;DELIMITER $$USE `dev2qa_example`$$CREATE PROCEDURE `multiple_number` (a int, b int, out sum int)BEGIN set sum =a * b; END$$DELIMITER;
- जांचें कि क्या अजगर mysql-connector-python पुस्तकालय और अजगर pymysql आपके अजगर वातावरण पर पुस्तकालय स्थापित किया गया है।
$ pip show mysql-connector-pythonName:mysql-connector-pythonVersion:8.0.25Summary:Python में लिखा गया MySQL ड्राइवरहोम-पेज:http://dev.mysql.com/doc/connector-python/en/index. htmlलेखक:Oracle और/या उसके सहयोगीलेखक-ईमेल:UNKNOWNलाइसेंस:GNU GPLv2 (FOSS लाइसेंस अपवाद के साथ) स्थान:/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packagesRequires:protobufRequired-by:*********************************************** ***************************************** पीआईपी शो pymysqlName:PyMySQLVersion:1.0. 2सारांश:शुद्ध पायथन MySQL ड्राइवरहोम-पेज:https://github.com/PyMySQL/PyMySQL/Author:yutaka.matsubaraAuthor-email:[email protected]लाइसेंस:"MIT" स्थान:/Library/Frameworks/Python.framework/Versions /3.7/lib/python3.7/site-packagesआवश्यक:आवश्यक-द्वारा:
- अगर अजगर mysql-connector-python और pymysql पुस्तकालय आपके अजगर वातावरण में स्थापित नहीं है, आप कमांड चला सकते हैं पाइप इंस्टॉल pymysql या पाइप इंस्टॉल mysql-connector-python उन्हें स्थापित करने के लिए।
- MySQL संग्रहीत कार्यविधि को कॉल करें अजगर का उपयोग करें mysql-connector-python मॉड्यूल उदाहरण स्रोत कोड।
आयात mysql.connector# mysql कनेक्शन प्राप्त करें। Connector.connect(user=user, password=password, host=host, port=port, database=database, use_unicode=use_unicode) return conn# करीब mysql कनेक्शन। def close_mysql_connection(conn):यदि conn कोई नहीं है:conn.close() conn =कोई नहीं # mysql संग्रहीत कार्यविधि को कॉल करें। def call_stored_procedure(conn, store_procedure_name):कर्सर =conn.cursor() out_args =कर्सर.callproc(stored_procedure_name, (5, 6, 0)) Print(out_args) Print(out_args[0]) Print(out_args[1]) Print (out_args[2]) conn.commit() कर्सर.क्लोज़() अगर __name__ =='__main__':conn =open_mysql_connection() call_stored_procedure(conn, 'add_number') call_stored_procedure(conn, 'multiple_number') close_mysql_connection(conn)
- नीचे उपरोक्त उदाहरण आउटपुट है।
(5, 6, 11)5611(5, 6, 30)5630
- यदि आप अजगर का उपयोग करना चाहते हैं pymysql MySQL संग्रहीत कार्यविधि को कॉल करने के लिए मॉड्यूल, केवल अंतर यह है कि MySQL डेटाबेस कनेक्शन ऑब्जेक्ट कैसे प्राप्त करें, जब आप MySQL डेटाबेस कनेक्शन ऑब्जेक्ट प्राप्त करते हैं तो pymysql का उपयोग करें मॉड्यूल, आप उपरोक्त def call_stored_procedure(conn, store_procedure_name) को कॉल कर सकते हैं: MySQL संग्रहीत कार्यविधि को भी कॉल करने के लिए कार्य करता है।
- नीचे स्रोत कोड है जो MySQL डेटाबेस कनेक्शन ऑब्जेक्ट का उपयोग अजगर pymsql प्राप्त कर सकता है। , पासवर्ड ='जेरी', डीबी ='dev2qa_example', वर्णसेट ='utf8', कर्सरक्लास =कर्सर। डिक्ट कर्सर):कॉन =कनेक्ट (होस्ट =होस्ट, उपयोगकर्ता =उपयोगकर्ता, पासवर्ड =पासवर्ड, डीबी =डीबी, वर्णसेट =वर्णसेट, कर्सरक्लास =कर्सरक्लास) वापसी कोन # mysql कनेक्शन बंद करें। def close_mysql_connection(conn):यदि conn कोई नहीं है:conn.close()