此文件为python的,对C模块的再次封装,看了一会语法。开工。。。
#_oopmysql.py #__开头的类成员为私有。其他都为公共的 import _mytest class mysql: def __init__(self):#构造函数 创建对象时如此 xxx = mysql() self.__sql = _mytest.creat() self.affnum = 0 #每次执行sql语句后受影响的行数 self.rownum = 0 #每次执行sql语句后结果集总行数 self.colnum = 0 #每次执行sql语句后的每行的总列数 self.curr_rownum = 0 #当前行数 def __del__(self):#析构函数,出作用域析构,或者显式调用del _mytest.close(self.__sql) #主机名/ip 用户名 密码 数据库 端口 unix_flag clientflag #连接成功返回True,失败返回False def connect(self, host, user, passwd="", db="test", port=3306, unix_flag="", clientflag=0): if _mytest.connect(self.__sql, host, user, passwd, db, port, unix_flag, clientflag) == 0: return True else: return False #关闭数据库 def close(self): _mytest.close(self.__sql) #设置此次连接编码 #返回布尔值 def setcode(self, codeing="utf8"): self.code = codeing if _mytest.setcoding(self.__sql, self.code) == 0: return True else: return False #获取此次连接编码 #返回字符串 def getcode(self): return self.code #查询成功返回True,失败返回False def query(self, querystr): if _mytest.query(self.__sql, querystr) == -1: self.affnum = 0 self.rownum = 0 self.colnum = 0 return False else: self.affnum = _mytest.affects(self.__sql) self.rownum = _mytest.rowscount(self.__sql) self.colnum = _mytest.colscount(self.__sql) return True #返回受影响的行数 #返回整数 def affnum(self): return self.affnum #返回错误信息 #返回字符串 def error(self): return _mytest.error(self.__sql) #返回总行数 #返回整数 def numrows(self): return self.rownum #返回总列数 #返回整数 def numcols(self): return self.colnum #返回当前行序号 #返回整数 def getrownum(self): if self.curr_rownum == -1: self.curr_rownum = 0 return self.curr_rownum else: return self.curr_rownum #装入下一行 #返回布尔值, def nextrow(self): self.curr_rownum = _mytest.fetchnextrow(self.__sql) if self.curr_rownum == -1: return False else: return True #获取指定字段或下一个字段 #返回值为字符串 def nextfield(self, index=None): if index == None: return _mytest.nextfield(self.__sql, -1) else: return _mytest.nextfield(self.__sql, index) #获取当前列序号 #返回值为整数 def getcolnum(self): return _mytest.curcolid(self.__sql)