Python写的数据抽象层

python本身没有对mysql的支持,得依赖附加的库 http://mysql-python.sourceforge.net 。很多框架采用了这个库,比如adodb,django等。不过我倾向于自己写这些东西,所以小研究了一下。 mysql-python 有两个对象 MySQLdb _mysql 这里是介绍http://mysql-python.sourceforge.net/MySQLdb.html,我使用的是 MySQLdb 对象

 

#!/D:\python25\python.exe
import MySQLdb
 
class Mysql(object):
    handle = ''
    query = ''
    exectime = 0
    effected = 0
 
    def __init__( self , hostname , username , password , database ):
        db = MySQLdb.connect( host = hostname , user = username , passwd = password , db = database )
        self.handle = db.cursor()
        
    def query( self , sql = '' ):
        return self.handle.execute( sql )
 
    def fetch( self , sql = '' ):
        self.handle.execute( sql )
        rs = self.handle.fetchone()
        count = 0
        result = {}
        for colnum in self.handle.description:
            result[colnum[0]] = rs[count]
            count += 1
        return result
    
    def fetchAll( self , sql = '' ):
        self.handle.execute( sql )
        result = {}
        bigcount = 0
        for recordline in self.handle.fetchall():
            littlecount = 0
            result[bigcount] = {}
            for colnum in self.handle.description:
                result[bigcount][colnum[0]] = recordline[littlecount]
                littlecount += 1
            bigcount += 1
        return result
 
    def insertID( self ):
          self.handle.execute("SELECT LAST_INSERT_ID() AS lid")
          rs = self.handle.fetchone()
          return rs[0]
 
    def close( self ):
          self.handle.close()
          pass
#DEMO
db = Mysql('localhost','root','123456','frame')
db.fetchAll('select * from user')
#rs = db.fetchAll('select * from user')
#sql = "INSERT INTO tags (module,fid,name,note,`order`) VALUE ('test',1,'fd','ds',1)"
#db.query(sql)
#print db.insertID()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值