Exception: FLEA_Db_Exception_SqlQuery
Message: SQL 错误消息: "Can't connect to MySQL server on 'localhost' (10061)"
SQL 语句: "mysql_connect('localhost', 'sdxyt') failed!"
SQL 错误代码: "7335941".
Filename: D:\web\sdxyt\FLEA\FLEA.php [752]
#8 FLEA_Db_Driver_Mysql::connect()
ARGS:
Array
(
)
SOURCE CODE:
| 742 |
|
| 743 |
$driver = ucfirst(strtolower($dsn['driver']));
|
| 744 |
$className = 'FLEA_Db_Driver_' . $driver;
|
| 745 |
if ($driver == 'Mysql' || $driver == 'Mysqlt') {
|
| 746 |
require_once(FLEA_DIR . '/Db/Driver/Mysql.php');
|
| 747 |
} else {
|
| 748 |
FLEA::loadClass($className);
|
| 749 |
}
|
| 750 |
$dbo =& new $className($dsn);
|
| 751 |
/* @var $dbo FLEA_Db_Driver_Abstract */
|
| 752 |
$dbo->connect();
|
| 753 |
|
| 754 |
$GLOBALS[G_FLEA_VAR]['DBO'][$dsnid] =& $dbo;
|
| 755 |
return $GLOBALS[G_FLEA_VAR]['DBO'][$dsnid];
|
| 756 |
}
|
| 757 |
|
| 758 |
/**
|
| 759 |
* 分析 DSN 字符串或数组,返回包含 DSN 连接信息的数组,失败返回 false
|
| 760 |
*
|
| 761 |
* @param string|array $dsn
|
| 762 |
*
|
Filename: D:\web\sdxyt\FLEA\FLEA\Db\TableDataGateway.php [301]
#7 FLEA::getDBO()
ARGS:
Array
(
)
SOURCE CODE:
| 291 |
// 当 skipInit 为 true 时,不初始化表数据入口对象
|
| 292 |
if (isset($params['skipConnect']) && $params['skipConnect'] != false) {
|
| 293 |
return;
|
| 294 |
}
|
| 295 |
|
| 296 |
// 初始化数据访问对象
|
| 297 |
if (!isset($params['dbo'])) {
|
| 298 |
if (isset($params['dbDSN'])) {
|
| 299 |
$dbo =& FLEA::getDBO($params['dbDSN']);
|
| 300 |
} else {
|
| 301 |
$dbo =& FLEA::getDBO();
|
| 302 |
}
|
| 303 |
} else {
|
| 304 |
$dbo =& $params['dbo'];
|
| 305 |
}
|
| 306 |
$this->setDBO($dbo);
|
| 307 |
|
| 308 |
// 当 skipCreateLinks 不为 true 时,建立关联
|
| 309 |
if (!isset($params['skipCreateLinks']) || $params['skipCreateLinks'] == false) {
|
| 310 |
$this->relink();
|
| 311 |
}
|
Filename: D:\web\sdxyt\FLEA\FLEA.php [422]
#6 FLEA_Db_TableDataGateway::FLEA_Db_TableDataGateway()
ARGS:
Array
(
)
SOURCE CODE:
| 412 |
} else {
|
| 413 |
$classExists = class_exists($className);
|
| 414 |
}
|
| 415 |
if (!$classExists) {
|
| 416 |
if (!FLEA::loadClass($className)) {
|
| 417 |
$return = false;
|
| 418 |
return $return;
|
| 419 |
}
|
| 420 |
}
|
| 421 |
|
| 422 |
$instances[$className] =& new $className();
|
| 423 |
FLEA::register($instances[$className], $className);
|
| 424 |
return $instances[$className];
|
| 425 |
}
|
| 426 |
|
| 427 |
/**
|
| 428 |
* 将一个对象实例注册到对象实例容器,以便稍后取出
|
| 429 |
*
|
| 430 |
* example:
|
| 431 |
* <code>
|
| 432 |
* $obj =& new MyClass();
|
Filename: D:\web\sdxyt\APP\Controller\Post.php [25]
#5 FLEA::getSingleton('Model_Posts')
ARGS:
Array
(
[0] => Model_Posts
)
SOURCE CODE:
| 15 |
|
| 16 |
|
| 17 |
/**
|
| 18 |
* FLEA::getSingleton() 会自动载入指定类的定义文件,并且返回该类的唯一一个实例
|
| 19 |
*/
|
| 20 |
/*
|
| 21 |
* 新闻
|
| 22 |
* 中文
|
| 23 |
* Model层
|
| 24 |
*/
|
| 25 |
$this->_modelPosts =& FLEA::getSingleton('Model_Posts');
|
| 26 |
/*
|
| 27 |
* 英文
|
| 28 |
* 新闻
|
| 29 |
* Model层
|
| 30 |
*/
|
| 31 |
$this->_modelPosts_en =& FLEA::getSingleton('Model_Postsen');
|
| 32 |
/*
|
| 33 |
*产品
|
| 34 |
*英文
|
| 35 |
*Model层
|
Filename: D:\web\sdxyt\FLEA\FLEA\Dispatcher\Simple.php [106]
#4 Controller_Post::Controller_Post('Post')
ARGS:
Array
(
[0] => Post
)
SOURCE CODE:
| 96 |
|
| 97 |
$controller = null;
|
| 98 |
$controllerClassFilename = null;
|
| 99 |
do {
|
| 100 |
// 载入控制对应的类定义
|
| 101 |
if (!$this->_loadController($controllerClass)) { break; }
|
| 102 |
|
| 103 |
// 构造控制器对象
|
| 104 |
FLEA::setAppInf('FLEA.internal.currentControllerName', $controllerName);
|
| 105 |
FLEA::setAppInf('FLEA.internal.currentActionName', $actionName);
|
| 106 |
$controller =& new $controllerClass($controllerName);
|
| 107 |
if (!method_exists($controller, $actionMethod)) { break; }
|
| 108 |
if (method_exists($controller, '__setController')) {
|
| 109 |
$controller->__setController($controllerName, $actionName);
|
| 110 |
}
|
| 111 |
if (method_exists($controller, '__setDispatcher')) {
|
| 112 |
$controller->__setDispatcher($this);
|
| 113 |
}
|
| 114 |
|
| 115 |
// 调用 _beforeExecute() 方法
|
| 116 |
if (method_exists($controller, '_beforeExecute')) {
|
Filename: D:\web\sdxyt\FLEA\FLEA\Dispatcher\Simple.php [77]
#3 FLEA_Dispatcher_Simple::_executeAction('Post', 'Gsxwzz', 'Controller_Post')
ARGS:
Array
(
[0] => Post
[1] => Gsxwzz
[2] => Controller_Post
)
SOURCE CODE:
| 67 |
|
| 68 |
/**
|
| 69 |
* 从请求中分析 Controller、Action 和 Package 名字,然后执行指定的 Action 方法
|
| 70 |
*
|
| 71 |
* @return mixed
|
| 72 |
*/
|
| 73 |
function dispatching()
|
| 74 |
{
|
| 75 |
$controllerName = $this->getControllerName();
|
| 76 |
$actionName = $this->getActionName();
|
| 77 |
return $this->_executeAction($controllerName, $actionName, $this->getControllerClass($controllerName));
|
| 78 |
}
|
| 79 |
|
| 80 |
/**
|
| 81 |
* 执行指定的 Action 方法
|
| 82 |
*
|
| 83 |
* @param string $controllerName
|
| 84 |
* @param string $actionName
|
| 85 |
* @param string $controllerClass
|
| 86 |
*
|
| 87 |
* @return mixed
|
Filename: D:\web\sdxyt\FLEA\FLEA.php [816]
#2 FLEA_Dispatcher_Simple::dispatching()
ARGS:
Array
(
)
SOURCE CODE:
| 806 |
require_once($MVCPackageFilename);
|
| 807 |
}
|
| 808 |
FLEA::init();
|
| 809 |
|
| 810 |
// 载入调度器并转发请求到控制器
|
| 811 |
$dispatcherClass = FLEA::getAppInf('dispatcher');
|
| 812 |
FLEA::loadClass($dispatcherClass);
|
| 813 |
|
| 814 |
$dispatcher =& new $dispatcherClass($_GET);
|
| 815 |
FLEA::register($dispatcher, $dispatcherClass);
|
| 816 |
$dispatcher->dispatching();
|
| 817 |
}
|
| 818 |
|
| 819 |
/**
|
| 820 |
* 准备运行环境
|
| 821 |
*
|
| 822 |
* @param boolean $loadMVC
|
| 823 |
*/
|
| 824 |
function init($loadMVC = false)
|
| 825 |
{
|
| 826 |
static $firstTime = true;
|
Filename: D:\web\sdxyt\index.php [78]
#1 FLEA::runMVC()
ARGS:
Array
(
)
SOURCE CODE:
| 68 |
*/
|
| 69 |
$appInf = array(
|
| 70 |
// 指定该应用程序使用的数据表的前缀
|
| 71 |
'dbTablePrefix' => 'mvc_',
|
| 72 |
);
|
| 73 |
FLEA::loadAppInf($appInf);
|
| 74 |
|
| 75 |
/**
|
| 76 |
* FLEA::runMVC() 根据 URL 地址实例化指定的 Controller 类,调用指定的 Action 方法
|
| 77 |
*/
|
| 78 |
FLEA::runMVC();
|