File: Project->framework\src\DB\Connecter\MySQLConnecter.php Line: 63

SQLSTATE[HY000] [2002] ????????????????????????????
75         */
76        static function getInstance($dsn$user$password, array $option = array())
77        {
78            //同时建立多个连接时候已dsn的md5值为key
79            $key md5($dsn);
80            if (!isset(self::$instance[$key])) {
81                self::$instance [$key] = new self($dsn$user$password$option);
82            }
83    
84            return self::$instance [$key];
85        }
86    
87        /**
47            //配置的数据表前缀
48            $prefix = !empty($params['prefix']) ? $params['prefix'] : '';
49            $options = isset($params['options']) ? $params['options'] : array();
50            switch (strtolower($link)) {
51                case 'mysql' :
52                    return new PDOSqlDriver(
53                        MySQLConnecter::getInstance(self::getDsn($params'mysql'), $params['user'], $params['pass'], $options),
54                        new MySQLAssembler($prefix)
55                    );
56    
57                case 'sqlite':
58                    return new PDOSqlDriver(SQLiteConnecter::getInstance($params['dsn'], nullnull$options), new SQLiteAssembler($prefix));
59    
195         *
196         * @return RedisDriver|CouchDriver|MongoDriver|PDOSqlDriver|mixed
197         * @throws CoreException
198         */
199        private function getLink()
200        {
201            return DBFactory::make($this->link_type$this->link_config, array($this->getConfig()));
202        }
203    
204        /**
205         初始化model_type和model_config
206         *
207         * @param string $params
241         * @return RedisDriver|Config|CouchDriver|MongoDriver|PDOSqlDriver|Request|Response|View|mixed|null
242         */
243        function __get($property)
244        {
245            switch ($property) {
246                case 'link' :
247                    return $this->link $this->getLink();
248    
249                default :
250                    return parent::__get($property);
251            }
252        }
253    }
109         *
110         * @param string $table
111         * @return string
112         */
113        function getPrefix($table '')
114        {
115            return $this->link->getPrefix() . $table;
116        }
117    
118        /**
119         读取并解析数据库配置
120         *
121         * @return CrossArray
39        protected $auto_prefix true;
40    
41        function __construct($params '')
42        {
43            parent::__construct($params);
44            if ($this->auto_prefix) {
45                $this->$this->getPrefix($this->t);
46            }
47        }
48    
49        /**
50         实例化当前类的子类
51         *
12    {
13        /**
14         默认控制器
15         */
16        function index()
17        {
18            $INDEX = new IndexModule;
19    
20    
21             $data=$INDEX->getIndex();
22    
23    
24            $this->display($data);
161                if (isset($annotate_config['before'])) {
162                    $this->callReliesControllerClosure($annotate_config['before'], $controller);
163                }
164    
165                if ($this->ob_cache_status) {
166                    ob_start();
167                    $response_content $controller->$action();
168                    if (!$response_content) {
169                        $response_content ob_get_contents();
170                    }
171                    ob_end_clean();
172                } else {
173                    $response_content $controller->$action();
149         解析url并运行
150         *
151         * @throws \Cross\Exception\CoreException
152         */
153        public function run()
154        {
155            $this->app->dispatcher($this->router->getRouter());
156        }
157    
158        /**
159         自定义router运行
160         *
161         * @param RouterInterface $router
1    <?php
2    /**
3     * @Authorwonli <wonli@live.com>
4     */
5    
6    require __DIR__ '/src/crossboot.php';
7    Cross\Core\Delegate::loadApp('web')->run();
8    
57         */
58        private function __construct($dsn$user$password, array $options = array())
59        {
60            try {
61                $this->pdo = new PDO($dsn$user$passwordparent::getOptions(self::$options$options));
62            } catch (Exception $e) {
63                throw new CoreException($e->getMessage());
64            }
65        }
66    
67        /**
68         * @see MysqlModel::__construct
69         *

Exception File

Project->framework\src\DB\Connecter\MySQLConnecter.php

Trace

Project->framework\src\DB\Connecter\MySQLConnecter.php (line: 81)
Project->framework\src\DB\DBFactory.php (line: 53)
Project->framework\src\MVC\Module.php (line: 201)
Project->framework\src\MVC\Module.php (line: 247)
Project->framework\src\MVC\Module.php (line: 115)
Project->framework\src\Module\SQLModule.php (line: 45)
Project->app\web\controllers\Main.php (line: 18)
Project->framework\src\Core\Application.php (line: 167)
Project->framework\src\Core\Delegate.php (line: 155)
Index->\index.php (line: 7)
empty
empty
empty
empty
empty