数据库链接错误/无法找到数据库 : Can't connect to MySQL server on '127.0.0.1' (111)

121.      public function __construct($dbConfig)
122.      {
123.          if(!function_exists('mysqli_connect'))spError('PHP环境未安装MySQLi函数库!');
124.          $linkfunction = ( TRUE == $dbConfig['persistent'] ) ? 'mysqli_pconnect' 'mysqli_connect';
125.          $this->conn $linkfunction($dbConfig['host'], $dbConfig['login'], $dbConfig['password'], $dbConfig['database'], $dbConfig['port']);
126.          if(mysqli_connect_errno())spError('数据库链接错误/无法找到数据库 : 'mysqli_connect_error());
127.          mysqli_set_charset($this->conn,'UTF8');
128.      }
129.      /**
130.       对特殊字符进行过滤
131.       *
154.          }
155.      }
156.      if(FALSE != $has_define){
157.          $argString '';$comma ''
158.          if(null != $args)for ($i 0$i count($args); $i ++) { $argString .= $comma "\$args[$i]"$comma ', '; } 
159.          eval("\$GLOBALS['G_SP']['inst_class'][\$class_name]= new \$class_name($argString);"); 
160.          return $GLOBALS['G_SP']["inst_class"][$class_name];
161.      }
162.      spError($class_name."类定义不存在,请检查。");
163.  }
164. 
45.      {
46.          if( null == $this->tbl_name )$this->tbl_name $GLOBALS['G_SP']['db']['prefix'] . $this->table;
47.          if( '' == $GLOBALS['G_SP']['db_driver_path'] ){
48.              $GLOBALS['G_SP']['db_driver_path'] = $GLOBALS['G_SP']['sp_drivers_path'].'/'.$GLOBALS['G_SP']['db']['driver'].'.php';
49.          }
50.          $this->_db spClass('db_'.$GLOBALS['G_SP']['db']['driver'], array(0=>$GLOBALS['G_SP']['db']), $GLOBALS['G_SP']['db_driver_path']);
51.          if(!empty($GLOBALS['G_SP']['db']['sqlmode'])) $this->_db->exec("SET SQL_MODE = '{$GLOBALS['G_SP']['db']['sqlmode']}'");
52.      }
53.      
54.      
55. 
154.          }
155.      }
156.      if(FALSE != $has_define){
157.          $argString '';$comma ''
158.          if(null != $args)for ($i 0$i count($args); $i ++) { $argString .= $comma "\$args[$i]"$comma ', '; } 
159.          eval("\$GLOBALS['G_SP']['inst_class'][\$class_name]= new \$class_name($argString);"); 
160.          return $GLOBALS['G_SP']["inst_class"][$class_name];
161.      }
162.      spError($class_name."类定义不存在,请检查。");
163.  }
164. 
342.   *                    表全名是默认值,db_spdb_full_tblname true,tbl_name值将是(表前缀 表名称)
343.   *                    表名称,db_spdb_full_tblname false,这时候框架将使用db配置中的表前缀prefix。
344.   * @param pk    主键(可选),忽略主键的时候,将获取表第一个字段作为主键(通常都是)
345.   */
346.  function spDB($tbl_name$pk null){
347.      $modelObj spClass("spModel");
348.      $modelObj->tbl_name = (TRUE == $GLOBALS['G_SP']["db_spdb_full_tblname"]) ? $tbl_name :    $GLOBALS['G_SP']['db']['prefix'] . $tbl_name;
349.      if( !$pk ){ // 主键通过数据库驱动getTable来获取
350.          @list($pk) = $modelObj->_db->getTable($modelObj->tbl_name);$pk $pk['Field'];
351.      }
352.      $modelObj->pk $pk;
9. 
10.      function  __construct(){
11. 
12.          $this->info $this->cache_reader('static_paga_data',function(){
13.              $cate $info =$idinfo = array();
14.              $ret spDb('static_page')->findAll();
15.              if($ret){
16.                  foreach($ret as $d){
17.                      $cate[$d['category_ename']] = $d['category_name'];
18.                      $info[$d['category_ename']] = $d;
19.                      $idinfo[$d['id']] = $d;
67.      //读取缓存
68.      protected function cache_reader($id,$callback,$cache_time=0){
69.          $row spAccess('r',$id);
70.          if(!$cache_time$cache_time $this->cache_time;
71.          if($row === false){
72.              $row $callback();
73.              if(!$this->nocachespAccess('w',$id,$row,$cache_time);
74.          }
75.          return $row;
76.      }
77. 
20.                  }
21.              }
22. 
23. 
24.              return array('cate'=>$cate,'info'=>$info,'idinfo'=>$idinfo);
25.          });
26.      }
27. 
28.      //调用页面
29.      function getCategory(){
30.          return $this->info['cate'];
154.          }
155.      }
156.      if(FALSE != $has_define){
157.          $argString '';$comma ''
158.          if(null != $args)for ($i 0$i count($args); $i ++) { $argString .= $comma "\$args[$i]"$comma ', '; } 
159.          eval("\$GLOBALS['G_SP']['inst_class'][\$class_name]= new \$class_name($argString);"); 
160.          return $GLOBALS['G_SP']["inst_class"][$class_name];
161.      }
162.      spError($class_name."类定义不存在,请检查。");
163.  }
164. 
32.                  return $res;
33.              },60);
34.          }
35. 
36.          $this->static_page_cate $this->cache_reader('static_page_cate',function(){
37.              return spClass('staticPageHelper')->getCategory();
38.          },3600);
39. 
40.          //搜索粘性选择
41.          $this->search_m $this->spArgs('m');
42.      }
67.      //读取缓存
68.      protected function cache_reader($id,$callback,$cache_time=0){
69.          $row spAccess('r',$id);
70.          if(!$cache_time$cache_time $this->cache_time;
71.          if($row === false){
72.              $row $callback();
73.              if(!$this->nocachespAccess('w',$id,$row,$cache_time);
74.          }
75.          return $row;
76.      }
77. 
33.              },60);
34.          }
35. 
36.          $this->static_page_cate $this->cache_reader('static_page_cate',function(){
37.              return spClass('staticPageHelper')->getCategory();
38.          },3600);
39. 
40.          //搜索粘性选择
41.          $this->search_m $this->spArgs('m');
42.      }
43. 
4.   * @author xi.wang
5.   */
6.  class main extends controller{
7. 
8.      function  __construct(){
9.          parent::__construct();
10.          $this->current_main 1;
11.      }
12. 
13. 
14. 
154.          }
155.      }
156.      if(FALSE != $has_define){
157.          $argString '';$comma ''
158.          if(null != $args)for ($i 0$i count($args); $i ++) { $argString .= $comma "\$args[$i]"$comma ', '; } 
159.          eval("\$GLOBALS['G_SP']['inst_class'][\$class_name]= new \$class_name($argString);"); 
160.          return $GLOBALS['G_SP']["inst_class"][$class_name];
161.      }
162.      spError($class_name."类定义不存在,请检查。");
163.  }
164. 
9.  function spRun(){
10.      GLOBAL $__controller$__action;
11.      // 对路由进行自动执行相关操作
12.      spLaunch("router_prefilter");
13.      // 对将要访问的控制器类进行实例化
14.      $handle_controller spClass($__controllernull$GLOBALS['G_SP']["controller_path"].'/'.$__controller.".php");
15.      // 调用控制器出错将调用路由错误处理函数
16.      if(!is_object($handle_controller) || !method_exists($handle_controller$__action)){
17.          if(is_object($handle_controller) and method_exists($handle_controller,'methodMissing')){
18.              $handle_controller->methodMissing($__action);
19.              exit;
3.  define('APP_PATH',dirname(__FILE__));
4.  define('SP_PATH',APP_PATH.'/../init');
5.  require(APP_PATH.'/../config.php');
6.  require(SP_PATH.'/init.php');
7.  header('Content-type: text/html; charset=utf-8');
8.  spRun();