Python MySql 操作类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python MySql 操作类相关的知识,希望对你有一定的参考价值。
Python 2.7
暂时只用到这么多,以后用到其他的再补充。
# -*- coding:utf-8 -*- import MySQLdb import time ‘‘‘ · MySQL 操作类 · V1.0 ‘‘‘ class MySQLClass(object): def __init__(self,host,user,password,charset="utf8"): super(MySQLClass, self).__init__() self.host=host self.user=user self.password=password self.port=3307 # 我这里MySql端口是3307,默认3306 self.charset=charset try: self.conn=MySQLdb.connect(host=self.host,user=self.user,passwd=self.password,port=self.port) self.conn.set_character_set(self.charset) self.cur=self.conn.cursor() except MySQLdb.Error as e: self.printError(e,‘‘) def getTime(self): return time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) def printError(self,e,sql): print("{0} MySQl Error {1}: {2}".format(self.getTime(),e.args[0],e.args[1])) print(sql) def setdb(self,db): try: self.conn.select_db(db) except MySQLdb.Error as e: self.printError(e,‘‘) #新增 def insert(self,tablename,DicData): try: arrParam=[] arrValue=[] for key in DicData: arrParam.append(‘%s‘) arrValue.append(DicData[key]) strfield=‘`{0}`‘.format(‘`,`‘.join(DicData.keys())) strParam=‘values({0})‘.format(‘,‘.join(arrParam)) sql=‘insert into {0}({1}) {2};‘.format(tablename,strfield,strParam) self.cur.execute(sql,tuple(arrValue)) # 单调新增 self.conn.commit() except MySQLdb.Error as e: self.printError(e,sql) #self.conn.close() #批量新增 def insertBatch(self,tablename,arrFiled,arrTupleValue): try: strfield = ‘`{0}`‘.format(‘`,`‘.join(arrFiled)) arrParam=[] for x in arrFiled: arrParam.append(‘%s‘) strParam = ‘values({0})‘.format(‘,‘.join(arrParam)) sql = ‘insert into {0}({1}) {2};‘.format(tablename, strfield, strParam) self.cur.executemany(sql,tuple(arrTupleValue)) #many 多条新增 self.conn.commit() except MySQLdb.Error as e: self.printError(e,‘‘) #self.conn.close() #更新语句 def update(self,sql): try: self.cur.execute(sql) self.conn.commit() except MySQLdb.Error as e: self.conn.rollback() self.printError(e,sql) #self.conn.close() #查询单个字段 返回List def executeList(self,sql): try: result=[] self.cur.execute(sql) ds=self.cur.fetchall() for i,row in enumerate(ds): result.append(str(row[0])) return result except MySQLdb.Error as e: self.printError(e,sql) db=MySQLClass(‘127.0.0.1‘,‘root‘,‘123456‘) db.setdb(‘test‘) # arr=db.executeList(‘SELECT DISTINCT skuid from commodity‘) # for x in arr: # print(x) # table=db.insert(‘commodity‘,{‘title‘:‘10‘}) # db.conn.commit() # arrTr={‘title‘:‘1‘} # if ‘titl1e‘ in arrTr: # print (1) # else: # print (0) arrFiled = [‘name‘, ‘age‘] arrValue=[‘1‘,‘2‘] arrValueS=[] arrValueS.append([1,‘1‘]) db.insertBatch(‘test‘,arrFiled,arrValueS)
以上是关于Python MySql 操作类的主要内容,如果未能解决你的问题,请参考以下文章