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()