Exemplo n.º 1
0
 /**
  * 关闭所有数据库实例
  */
 public static function closeAll()
 {
     foreach (self::$instance as $connection) {
         $connection->closeConnection();
     }
     self::$instance = array();
 }
Exemplo n.º 2
0
 /**
  * Executes a query
  */
 public static function Query($sql, $params = null)
 {
     $retVal = null;
     try {
         $comm = self::$_conn->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
         $comm->execute($params);
         switch (strtolower(current(explode(' ', $sql)))) {
             case 'call':
             case 'select':
                 $retVal = new stdClass();
                 $retVal->count = $comm->rowCount();
                 $retVal->comm = $comm;
                 break;
             case 'insert':
                 $retVal = new stdClass();
                 $retVal->insertId = self::$_conn->lastInsertId();
                 $retVal->count = $comm->rowCount();
                 break;
             case 'update':
             case 'delete':
                 $retVal = $comm->rowCount();
                 break;
         }
         self::$lastError = self::$_conn->errorInfo();
     } catch (PDOException $e) {
         self::$lastError = $e;
         $retVal = false;
     }
     return $retVal;
 }
Exemplo n.º 3
0
 /**
  * 取得数据库类实例
  * @static
  * @access public
  * @param mixed $config 连接配置
  * @return Object 返回数据库驱动类
  */
 public static function getInstance($config = array())
 {
     $md5 = md5(serialize($config));
     if (!isset(self::$instance[$md5])) {
         // 解析连接参数 支持数组和字符串
         $options = self::parseConfig($config);
         // 兼容mysqli
         if ('mysqli' == $options['type']) {
             $options['type'] = 'mysql';
         }
         self::$instance[$md5] = new Mysql($options);
     }
     self::$_instance = self::$instance[$md5];
     return self::$_instance;
 }