Artikel ini akan menunjukkan kepada Anda contoh tentang cara memanggil prosedur tersimpan MySQL dengan python. Ini akan menggunakan python mysql-connector-python perpustakaan dan python pymysql perpustakaan.
1. Panggil Prosedur Tersimpan MySQL Dalam Langkah Python.
- Buat dua prosedur tersimpan MySQL menggunakan kode sumber di bawah ini.
- Prosedur Tersimpan MySQL add_number .
GUNAKAN `dev2qa_example`;DROP procedure IF EXISTS `add_number`;DELIMITER $$USE `dev2qa_example`$$CREATE PROCEDURE `add_number` (a int, b int, out sum int)BEGIN set sum =a + b; AKHIR$$DELIMITER;
- Prosedur Tersimpan MySQL multiple_number .
GUNAKAN `dev2qa_example`;DROP procedure IF EXISTS `multiple_number`;DELIMITER $$USE `dev2qa_example`$$CREATE PROCEDURE `multiple_number` (a int, b int, out sum int)BEGIN set sum =a * b; AKHIR$$DELIMITER;
- Periksa apakah python mysql-connector-python perpustakaan dan python pymysql library telah diinstal di lingkungan python Anda.
$ pip tampilkan mysql-connector-pythonName:mysql-connector-pythonVersion:8.0.25Ringkasan:Driver MySQL ditulis dalam PythonHome-page:http://dev.mysql.com/doc/connector-python/en/index. htmlPenulis:Oracle dan/atau afiliasinyaEmail penulis:UNKNOWNLisensi:GNU GPLv2 (dengan Pengecualian Lisensi FOSS)Lokasi:/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packagesMemerlukan:protobufDiperlukan-oleh:************************************************** *****************************************$ pip show pymysqlName:PyMySQLVersion:1.0. 2Ringkasan:Pure Python MySQL DriverHome-page:https://github.com/PyMySQL/PyMySQL/Author:yutaka.matsubaraAuthor-email:[email protected]:"MIT"Location:/Library/Frameworks/Python.framework/Versions /3.7/lib/python3.7/site-packagesMemerlukan:Diperlukan-oleh:
- Jika python mysql-connector-python dan pymysql library tidak diinstal di lingkungan python Anda, Anda dapat menjalankan perintah pip install pymysql atau pip install mysql-connector-python untuk menginstalnya.
- Panggil prosedur tersimpan MySQL menggunakan python mysql-connector-python contoh modul kode sumber.
import mysql.connector# get mysql connection object.def open_mysql_connection(user=global_user, password=global_password, host=global_host, port=global_port, database=global_db, use_unicode=True):conn =mysql. connector.connect(user=user, password=password, host=host, port=port, database=database, use_unicode=use_unicode) return conn# tutup koneksi mysql. def close_mysql_connection(sambungan):jika samb bukan Tidak ada:samb.close() conn =Tidak ada # panggil prosedur tersimpan mysql. def call_stored_procedure(sambungan, nama_prosedur tersimpan):cursor =conn.cursor() out_args =cursor.callproc(stored_procedure_name, (5, 6, 0)) print(out_args) print(out_args[0]) print(out_args[1]) print (out_args[2]) conn.commit() cursor.close() if __name__ =='__main__':conn =open_mysql_connection() call_stored_procedure(sambungan, 'add_number') call_stored_procedure(sambungan, 'multiple_number') close_mysql)
- Di bawah ini adalah contoh output di atas.
(5, 6, 11)5611(5, 6, 30)5630
- Jika Anda ingin menggunakan python pymysql modul untuk memanggil prosedur tersimpan MySQL, satu-satunya perbedaan adalah bagaimana mendapatkan objek koneksi database MySQL, ketika Anda mendapatkan objek koneksi database MySQL gunakan pymysql modul, Anda dapat memanggil def call_stored_procedure(sambungan, stored_procedure_name): di atas berfungsi untuk memanggil prosedur tersimpan MySQL juga.
- Di bawah ini adalah source code yang bisa mendapatkan objek koneksi database MySQL menggunakan python pymsql.
dari pymysql import connect, cursors# get mysql connection object.def open_mysql_connection(host='127.0.0.1', user='jerry' , password='jerry', db='dev2qa_example', charset='utf8', cursorclass=cursors.DictCursor):conn =connect(host=host, user=user, password=password, db=db, charset=charset, cursorclass=cursorclass) kembalikan samb # tutup koneksi mysql. def close_mysql_connection(sambungan):jika sambungan bukan Tidak ada:sambungan.close()