Database Err: SQLSTATE[HY000] [2002] Operation timed out

335.              try {
336.                  if(!class_exists("PDO") || !in_array("mysql",PDO::getAvailableDrivers(), true)){
337.                      err('Database Err: PDO or PDO_MYSQL doesn\'t exist!');
338.                  }
339.                  $GLOBALS["PDO_".$db_config_key] = new PDO('mysql:dbname='.$db_config['MYSQL_DB'].';host='.$db_config['MYSQL_HOST'].';port='.$db_config['MYSQL_PORT'], $db_config['MYSQL_USER'], $db_config['MYSQL_PASS'], array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES \''.$db_config['MYSQL_CHARSET'].'\''));
340.              }catch(PDOException $e){err('Database Err: '.$e->getMessage());}
341.          }
342.          return $GLOBALS["PDO_".$db_config_key];
343.      }
344.      
345.      private function _where($conditions){
305. 
306.          if($readonly && !empty($GLOBALS['mysql']['MYSQL_SLAVE'])){
307.              $slave_key array_rand($GLOBALS['mysql']['MYSQL_SLAVE']);
308.              $sth $this->dbInstance($GLOBALS['mysql']['MYSQL_SLAVE'][$slave_key], 'slave_'.$slave_key)->prepare($sql);
309.          }else{
310.              $sth $this->dbInstance($GLOBALS['mysql'], 'master')->prepare($sql);
311.          }
312.          
313.          if(is_array($params) && !empty($params)){
314.              foreach($params as $k => &$v){
315.                  if(is_int($v)){
297.              }
298.          }
299.          return $this->page;
300.      }
301.      
302.      public function query($sql$params = array()){return $this->execute($sql$paramstrue);}
303.      public function execute($sql$params = array(), $readonly false){
304.          $this->sql[] = $sql;
305. 
306.          if($readonly && !empty($GLOBALS['mysql']['MYSQL_SLAVE'])){
307.              $slave_key array_rand($GLOBALS['mysql']['MYSQL_SLAVE']);
218.              $limit $this->pager($limit[0], $limit[1], $limit[2], $total[0]['M_COUNTER']);
219.              $limit = empty($limit) ? '' ' LIMIT '.$limit['offset'].','.$limit['limit'];            
220.          }else{
221.              $limit = !empty($limit) ? ' LIMIT '.$limit '';
222.          }
223.          return $this->query('SELECT '$fields $sql $sort $limit$conditions["_bindParams"]);
224.      }
225.      
226.      public function find($conditions = array(), $sort null$fields '*'){
227.          $res $this->findAll($conditions$sort$fields1);
228.          return !empty($res) ? array_pop($res) : false;
4.      // 首页
5.      function actionIndex(){
6.      $this->title "中国百宝箱";
7.          $articleObj = new Article();
8.          $categoryObj = new Category();
9.          $this->categorys $categoryObj->findAll();
10.          $this->articles $articleObj->findAll('''article_id DESC'"*", array((int)arg("p"1), 5));
11.          $this->pager $articleObj->page;
12. 
13.          $templateObj = new Template();
14.          $template $templateObj->find(array("template_type"=>"index"), "updated DESC");
79.  if(!is_available_classname($__controller))_err_router("Err: Controller '$controller_name' is not correct!");
80.  if(!class_exists($controller_nametrue))_err_router("Err: Controller '$controller_name' is not exists!");
81.  if(!method_exists($controller_name$action_name))_err_router("Err: Method '$action_name' of '$controller_name' is not exists!");
82. 
83.  $controller_obj = new $controller_name();
84.  $controller_obj->$action_name();
85. 
86.  if($controller_obj->_auto_display){
87.      $auto_tpl_name = (empty($__module) ? '' $__module.DS).$__controller.'_'.$__action.'.html';
88.      if(file_exists(APP_DIR.DS.'protected'.DS.'view'.DS.$auto_tpl_name))$controller_obj->display($auto_tpl_name);
89.  }
1.  <?php
2.  define('APP_DIR'realpath('./'));
3.  require(APP_DIR.'/protected/lib/speed.php');