Warning: curl_exec() has been disabled for security reasons in /pub/host/sunboyu/sunboyu/www/wp-includes/http.php on line 1022
2009 三月 30 一个程序猿 孙小一,孙小二,PHP,MYSQL,LINUX,APACHE,原创技术,扯淡

Python写的数据抽象层

作者 : admin 于 2009年03月30日, 11:26:09
2009
03-30

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

  1. #!/D:\python25\python.exe
  2. import MySQLdb
  3.  
  4. class Mysql(object):
  5.     handle = ''
  6.     query = ''
  7.     exectime = 0
  8.     effected = 0
  9.  
  10.     def __init__( self , hostname , username , password , database ):
  11.         db = MySQLdb.connect( host = hostname , user = username , passwd = password , db = database )
  12.         self.handle = db.cursor()
  13.         
  14.     def query( self , sql = '' ):
  15.         return self.handle.execute( sql )
  16.  
  17.     def fetch( self , sql = '' ):
  18.         self.handle.execute( sql )
  19.         rs = self.handle.fetchone()
  20.         count = 0
  21.         result = {}
  22.         for colnum in self.handle.description:
  23.             result[colnum[0]] = rs[count]
  24.             count += 1
  25.         return result
  26.     
  27.     def fetchAll( self , sql = '' ):
  28.         self.handle.execute( sql )
  29.         result = {}
  30.         bigcount = 0
  31.         for recordline in self.handle.fetchall():
  32.             littlecount = 0
  33.             result[bigcount] = {}
  34.             for colnum in self.handle.description:
  35.                 result[bigcount][colnum[0]] = recordline[littlecount]
  36.                 littlecount += 1
  37.             bigcount += 1
  38.         return result
  39.  
  40.     def insertID( self ):
  41.           self.handle.execute("SELECT LAST_INSERT_ID() AS lid")
  42.           rs = self.handle.fetchone()
  43.           return rs[0]
  44.  
  45.     def close( self ):
  46.           self.handle.close()
  47.           pass
  48. #DEMO
  49. db = Mysql('localhost','root','123456','frame')
  50. db.fetchAll('select * from user')
  51. #rs = db.fetchAll('select * from user')
  52. #sql = "INSERT INTO tags (module,fid,name,note,`order`) VALUE ('test',1,'fd','ds',1)"
  53. #db.query(sql)
  54. #print db.insertID()