MySQLdb提供了兩個執行語句的方法,一個是execute(),另一個是executemany()
execute(sql)
可接受一條語句從而執行
executemany(templet,args)
能同時執行多條語句,執行同樣多的語句可比execute()快很多,強烈建議執行多條語句時使用executemany
templet : sql模板字符串,
例如 'insert into table(id,name) values(%s,%s)'
args: 模板字符串的參數,是一個列表,列表中的每一個元素必須是元組!!!
例如: [(1,'小明'),(2,'zeke'),(3,'琦琦'),(4,'韓梅梅')]
executemany應用實例
#coding=utf-8
import MySQLdb import traceback tmp = "insert into exch_no_rand_auto(stkcode) values(%s);" #SQL模板字符串 l_tupple = [(i,) for i in range(100)] #生成數據參數,list里嵌套tuple class mymysql(object): def __init__(self): self.conn = MySQLdb.connect( host='127.0.0.1', port = 3306, user = 'root', passwd = '123456', db = 'xtp3') def insert_sql(self,temp,data): cur = self.conn.cursor() try: cur.executemany(temp,data) self.conn.commit() except: self.conn.rollback() traceback.print_exc() finally: cur.close() if __name__ == '__main__': m = mymysql() m.insert_sql(tmp,l_tupple)