首页 > 代码库 > Python MySql 操作类
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 操作类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。