コード例 #1
0
ファイル: db.init.php プロジェクト: lampguru/dake
 /**
  * 重写MYSQL中的QUERY,对SQL语句进行监控
  * @param string $sql
  */
 public function query($sql, $is_set_default = true)
 {
     $this->get_link_id($sql);
     //link_id获取
     $InitPHP_conf = InitPHP::getConfig();
     if ($InitPHP_conf['is_debug'] == true) {
         $start = microtime();
     }
     $query = $this->db->query($sql);
     if ($InitPHP_conf['is_debug'] == true) {
         $end = microtime();
     }
     //sql query debug
     if ($InitPHP_conf['is_debug'] == true) {
         $k = count($InitPHP_conf['sqlcontrolarr']);
         $InitPHP_conf['sqlcontrolarr'][$k]['sql'] = $sql;
         $costTime = substr($end - $start, 0, 7);
         $InitPHP_conf['sqlcontrolarr'][$k]['queryTime'] = $costTime;
         $InitPHP_conf['sqlcontrolarr'][$k]['affectedRows'] = $this->affected_rows();
         InitPHP::setConfig('sqlcontrolarr', $InitPHP_conf['sqlcontrolarr']);
     }
     if ($this->db->error()) {
         InitPHP::initError($this->db->error());
     }
     if ($is_set_default) {
         $this->set_default_link_id();
     }
     //设置默认的link_id
     return $query;
 }
コード例 #2
0
ファイル: dbhandler.init.php プロジェクト: superbogy/initphp
 /**
  * 获取link_id 数据库链接资源符
  * @param string $sql SQL语句进行分析
  * @return object
  */
 protected function get_link_id($sql = "")
 {
     $InitPHP_conf = InitPHP::getConfig();
     $db_type = $InitPHP_conf['Db'][$this->dbModel]['db_type'];
     //如果sql语句为空,则直接返回link_id
     if ($sql == "") {
         $this->db->link_id = self::$dbArr[$this->dbModel]['link_id'];
         return $this->db->link_id;
     }
     if (isset($InitPHP_conf['issqlcontrol']) && $InitPHP_conf['issqlcontrol'] == 1) {
         $InitPHP_conf['sqlcontrolarr'][] = $sql;
         InitPHP::setConfig('sqlcontrolarr', $InitPHP_conf['sqlcontrolarr']);
     }
     if ($db_type == 1) {
         //主从
         if ($this->is_insert($sql)) {
             $this->db->link_id = self::$dbArr[$this->dbModel]['master']['link_id'];
         } else {
             $this->db->link_id = self::$dbArr[$this->dbModel]['salver']['link_id'];
         }
     } else {
         $this->db->link_id = self::$dbArr[$this->dbModel]['link_id'];
     }
     return $this->db->link_id;
 }
コード例 #3
0
 /**
  * 数据库语句监控器-开始点
  * 使用方法:$this->getUtil('sqlcontrol')->start();
  * @return string   
  */
 public function start()
 {
     InitPHP::setConfig('issqlcontrol', 1);
 }