每日学习笔记(10)

 记录下自己日常工作中经常使用的几个小工具类

1,python部分,一个日志类,一个数据库操作类。
 
  
  
  
  
  1. ################### 
  2. #日志辅助类 
  3. ################# 
  4. class Logger: 
  5.     LOG_DEBUG= "debug" 
  6.     LOG_DEBUG_FILE = "/tmp/debug.log" 
  7.     LOG_RELEASE = "release" 
  8.     LOG_RELEASE_FILE = "/tmp/release.log" 
  9.  
  10.     def __init__(self, log_type): 
  11.         self._logger = logging.getLogger(log_type) 
  12.         if log_type == Logger.LOG_DEBUG: 
  13.             self._logFile = Logger.LOG_DEBUG_FILE 
  14.         elif log_type == Logger.LOG_RELEASE: 
  15.             self._logFile = Logger.LOG_RELEASE_FILE 
  16.         handler = logging.FileHandler(self._logFile) 
  17.         if log_type == Logger.LOG_DEBUG: 
  18.             formatter = logging.Formatter('%(asctime)s ********* %(message)s'
  19.         else
  20.             formatter = logging.Formatter('%(message)s'
  21.         handler.setFormatter(formatter) 
  22.         self._logger.addHandler(handler) 
  23.         self._logger.setLevel(logging.INFO) 
  24.  
  25.     def log(self, msg): 
  26.         if self._logger is not None: 
  27.             self._logger.info(msg) 

 

  
  
  
  
  1. ################### 
  2. #数据库辅助类 
  3. ################# 
  4. class DbHelper: 
  5.     def __init__(self, strHost, strUser, strPassword, strDataBase): 
  6.         self._conn = None #数据库连接对象 
  7.         self._host = strHost 
  8.         self._user = strUser 
  9.         self._password = strPassword 
  10.         self._database = strDataBase 
  11.  
  12.     def connect(self):#连接数据库 
  13.         try: 
  14.             self._conn = MySQLdb.connect(host = self._host, user = self._user, passwd = self._password, db = self._database, charset = "utf8", use_unicode = True
  15.         except
  16.             self._conn = None 
  17.  
  18.     def isConnected(self):#数据库连接是否成功 
  19.         return self._conn != None 
  20.  
  21.     def getDataBaseName(self):#返回数据库名称 
  22.         return self._database 
  23.  
  24.     def insert(self, sql):#增加记录 
  25.         new_id = -1 
  26.         if sql != ""
  27.             cursor = self._conn.cursor() 
  28.             try: 
  29.                 try: 
  30.                     cursor.execute("set autocommit = 1"
  31.                     cursor.execute(sql) 
  32.                     new_id = cursor.lastrowid 
  33.                 except
  34.                     new_id = -1 
  35.             finally: 
  36.                 cursor.close() 
  37.         return new_id 
  38.  
  39.     def query(self, sql):#删除记录或修改记录 
  40.         if sql != ""
  41.             cursor = self._conn.cursor() 
  42.             try: 
  43.                 try: 
  44.                     cursor.execute("set autocommit = 1"
  45.                     cursor.execute(sql) 
  46.                 except
  47.                     pass 
  48.             finally: 
  49.                 cursor.close() 
  50.  
  51.     def fetch_rows(self, sql): #获取多个记录行 
  52.         result = None 
  53.         if sql != ""
  54.             cursor = self._conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) 
  55.             try: 
  56.                 try: 
  57.                     cursor.execute(sql) 
  58.                     result = cursor.fetchall() 
  59.                 except
  60.                     result = None 
  61.             finally: 
  62.                 cursor.close() 
  63.         return result 
  64.  
  65.     def fetch_one(self, sql): 
  66.         result = None 
  67.         if sql != ""
  68.             cursor = self._conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) 
  69.             try: 
  70.                 try: 
  71.                     cursor.execute(sql) 
  72.                     result = cursor.fetchone() 
  73.                 except
  74.                     result = None 
  75.             finally: 
  76.                 cursor.close() 
  77.         return result 
  78.  
  79.     def __del__(self):#对象析构时执行关闭动作 
  80.         self.close() 
  81.  
  82.     def close(self):#关闭数据库连接 
  83.         if self._conn != None: 
  84.             self._conn.close() 
  85.             self._conn = None 

2,php部分,一个数据库操作类。

 

  
  
  
  
  1. class db_mysql  
  2.     private $connid = FALSE; 
  3.  
  4.     function __construct($dbhost$dbuser$dbpwd$dbname = null) { 
  5.         $this->sql_connect($dbhost$dbuser$dbpwd$dbname); 
  6.     } 
  7.  
  8.     function sql_connect($dbhost$dbuser$dbpwd$dbname = null) { 
  9.         if ($this->connid) { 
  10.             mysql_close($this->connid); 
  11.         } 
  12.         if (!$this->connid = mysql_connect($dbhost$dbuser$dbpwd)) { 
  13.             $this->handleError('Can not connect to MySQL server. host: ' . $dbhost . ", user:" . $dbuser.", pwd:".$dbpwd); 
  14.         } 
  15.         mysql_query("set character_set_connection=utf8, character_set_results=utf8, character_set_client=binary"$this->connid); 
  16.         if ($dbname) { 
  17.             $this->sql_select_db($dbname); 
  18.         } 
  19.     } 
  20.  
  21.     function sql_select_db($dbname) { 
  22.         if (!mysql_select_db($dbname$this->connid)) { 
  23.             $this->handleError('Cannot use database ' . $dbname); 
  24.         } 
  25.     } 
  26.  
  27.     function sql_query($sql) { 
  28.         if (!($res = mysql_query($sql$this->connid))) { 
  29.             $this->handleError('MySQL Query Error'$sql); 
  30.         } 
  31.         return $res
  32.     } 
  33.  
  34.     function sql_insert($sql) { 
  35.         $this->sql_query($sql); 
  36.         return mysql_insert_id(); 
  37.     } 
  38.  
  39.     function sql_fetch_rows($sql$result_type = MYSQL_ASSOC) { 
  40.         $res = $this->sql_query($sql); 
  41.         $ret = array(); 
  42.         while ($r = mysql_fetch_array($res$result_type)) { 
  43.             $ret[] = $r
  44.         } 
  45.         mysql_free_result($res); 
  46.         return $ret
  47.     } 
  48.  
  49.     function sql_fetch_one($sql$result_type = MYSQL_ASSOC) { 
  50.         $res = $this->sql_query($sql); 
  51.         $ret = mysql_fetch_array($res$result_type); 
  52.         mysql_free_result($res); 
  53.         return $ret
  54.     } 
  55.  
  56.     function sql_fetch_one_cell($sql) { 
  57.         $ret = $this->sql_fetch_one($sql, MYSQL_NUM); 
  58.         return $ret[0]; 
  59.     } 
  60.  
  61.     function sql_fetch_column($sql$keyField$result_type = MYSQL_ASSOC) { 
  62.         $res = $this->sql_query($sql); 
  63.         $ret = array(); 
  64.         while ($r = mysql_fetch_array($res$result_type)) { 
  65.             if (isset($r[$keyField])) { 
  66.                 $ret[] = $r[$keyField]; 
  67.             } 
  68.         } 
  69.         mysql_free_result($res); 
  70.         return $ret
  71.     } 
  72.  
  73.     function sql_fetch_singlemap($sql$keyField$result_type = MYSQL_ASSOC) { 
  74.         $res = $this->sql_query($sql); 
  75.         $ret = array(); 
  76.         while ($r = mysql_fetch_array($res$result_type)) { 
  77.             if (isset($r[$keyField])) { 
  78.                 $ret[$r[$keyField]] = $r
  79.             } 
  80.         } 
  81.         mysql_free_result($res); 
  82.         return $ret
  83.     } 
  84.  
  85.     function sql_fetch_multimap($sql$keyField$result_type = MYSQL_ASSOC) { 
  86.         $res = $this->sql_query($sql); 
  87.         $ret = array(); 
  88.         while ($r = mysql_fetch_array($res$result_type)) { 
  89.             if (isset($r[$keyField])) { 
  90.                 $ret[$r[$keyField]][] = $r
  91.             } 
  92.         } 
  93.         mysql_free_result($res); 
  94.         return $ret
  95.     } 
  96.  
  97.     function handleError($message = ''$sql = '') { 
  98.         $err = emptyempty($sql) ? '' : 'MySQL Query:' . $sql
  99.         $err .= 'MySQL Error:' . mysql_error(); 
  100.         $err .= ', MySQL Errno:' . mysql_errno(); 
  101.         $err .= ', Message:' . $message
  102.         error_log($err); 
  103.     } 
  104.  
  105.     function __destruct() { 
  106.         if ($this->connid) { 
  107.             mysql_close($this->connid); 
  108.         } 
  109.     } 

 

你可能感兴趣的:(PHP,python,职场,休闲,PHP语言)