1. 程式人生 > >Python3操作mysql操作類

Python3操作mysql操作類

#下載mysql.connector 由於我的Anaconda裝了2和3,所以我首先在cm中使用activate命令切換到python3環境下,然後使用

pip  install mysql.connector

在這裡插入圖片描述

#Mysql操作類 下面基於mysql.connector寫了一個簡單的mysql操作類:

# -*- coding: utf-8 -*-
import mysql.connector


class MyDB():
     def __init__(self , host="127.0.0.1", username="root", password="112233", port=3306
, database="test"): '''類例化,處理一些連線操作''' self.host = host self.username = username self.password = password self.database = database self.port = port self.cur = None self.con = None # connect to mysql try: self.
con = mysql.connector.connect(host = self.host, user = self.username, password = self.password, port = self.port, database = self.database) self.cur = self.con.cursor() except : raise "DataBase connect error,please check the db config." def close(self): '''結束查詢和關閉連線'''
self.con.close() def create_table(self,sql_str): '''建立資料表''' try: self.cur.execute(sql_str) except Exception as e: print(e) def query_formatrs(self,sql_str): '''查詢資料,返回一個列表,裡面的每一行是一個字典,帶欄位名 cursor 為連線游標 sql_str為查詢語句 ''' try: self.cur.execute(sql_str) rows = self.cur.fetchall() r = [] for x in rows: r.append(dict(zip(self.cur.column_names,x))) return r except: return False def query(self,sql_str): '''查詢資料並返回 cursor 為連線游標 sql_str為查詢語句 ''' try: self.cur.execute(sql_str) rows = self.cur.fetchall() return rows except: return False def execute_update_insert(self,sql): ''' 插入或更新記錄 成功返回最後的id ''' self.cur.execute(sql) self.con.commit() return self.cur.lastrowid if __name__ == "__main__": mydb = MyDB() #建立表 mydb.create_table('create table user (id varchar(20) primary key, name varchar(20))') #插入資料 mydb.execute_update_insert("insert into user (id, name) values ('1', 'Michael')") # 查詢資料表 mydb_new = MyDB() results = mydb.query("SELECT * FROM detailinfo") print(results) for row in results: productname = row[0] supportname = row[1] productinterface = row[2] print("productname=%s,supportname=%s,productinterface=%s" % \ (productname, supportname, productinterface)) list = mydb.query_formatrs("SELECT * FROM detailinfo") for i in list: print ("記錄號:%s 值:%s" % (list.index(i) + 1, i)) #關閉資料庫 mydb.close()

執行該程式可以看到資料庫"user"成功建立,並且插入了一條資料。再者,在控制檯中成功列印了資料庫detailinfo中的資料。如下面的一些圖所示: 在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述