Exception: FLEA_Db_Exception_SqlQuery
Message: SQL 错误消息: "Table 'xietong.province' doesn't exist"
SQL 语句: "SHOW FULL COLUMNS FROM `province`"
SQL 错误代码: "7335941".
Filename: /server/apache/fleaphp/FLEA/FLEA/Db/Driver/Mysql.php [244]
#17 FLEA_Db_Driver_Mysql::execute('SHOW FULL COLUMNS FROM `pro ...')
ARGS: :
Array
(
[0] => SHOW FULL COLUMNS FROM `province`
)
SOURCE CODE:
| 234 |
'BLOB' => 'X',
|
| 235 |
'TEXT' => 'X',
|
| 236 |
'MEDIUMBLOB' => 'X',
|
| 237 |
'MEDIUMTEXT' => 'X',
|
| 238 |
'LONGBLOB' => 'X',
|
| 239 |
'LONGTEXT' => 'X',
|
| 240 |
'ENUM' => 'C',
|
| 241 |
'SET' => 'C',
|
| 242 |
);
|
| 243 |
|
| 244 |
$rs = $this->execute(sprintf($this->META_COLUMNS_SQL, $table));
|
| 245 |
if (!$rs) { return false; }
|
| 246 |
$retarr = array();
|
| 247 |
while (($row = mysql_fetch_assoc($rs))) {
|
| 248 |
$field = array();
|
| 249 |
$field['name'] = $row['Field'];
|
| 250 |
$type = $row['Type'];
|
| 251 |
|
| 252 |
$field['scale'] = null;
|
| 253 |
$queryArray = false;
|
| 254 |
if (preg_match('/^(.+)\((\d+),(\d+)/', $type, $queryArray)) {
|
Filename: /server/apache/fleaphp/FLEA/FLEA/Db/TableDataGateway.php [1996]
#16 FLEA_Db_Driver_Mysql::metaColumns('`province`')
ARGS: :
Array
(
[0] => `province`
)
SOURCE CODE:
| 1986 |
$meta = FLEA::getCache($cacheId, FLEA::getAppInf('dbMetaLifetime'));
|
| 1987 |
if (is_array($meta)) {
|
| 1988 |
$this->meta = $meta;
|
| 1989 |
return true;
|
| 1990 |
}
|
| 1991 |
}
|
| 1992 |
|
| 1993 |
/**
|
| 1994 |
* 从数据库获得 meta
|
| 1995 |
*/
|
| 1996 |
$this->meta = $this->dbo->metaColumns($this->qtableName);
|
| 1997 |
if (!is_array($this->meta) || empty($this->meta)) {
|
| 1998 |
FLEA::loadClass('FLEA_Db_Exception_MetaColumnsFailed');
|
| 1999 |
return __THROW(new FLEA_Db_Exception_MetaColumnsFailed($this->qtableName));
|
| 2000 |
}
|
| 2001 |
|
| 2002 |
if ($cached) {
|
| 2003 |
return FLEA::writeCache($cacheId, $this->meta);
|
| 2004 |
} else {
|
| 2005 |
return true;
|
| 2006 |
}
|
Filename: /server/apache/fleaphp/FLEA/FLEA/Db/TableDataGateway.php [333]
#15 FLEA_Db_TableDataGateway::_prepareMeta()
ARGS: :
Array
(
)
SOURCE CODE:
| 323 |
$this->dbo =& $dbo;
|
| 324 |
|
| 325 |
if (empty($this->schema) && !empty($dbo->dsn['schema'])) {
|
| 326 |
$this->schema = $dbo->dsn['schema'];
|
| 327 |
}
|
| 328 |
if (empty($this->fullTableName)) {
|
| 329 |
$this->fullTableName = $dbo->dsn['prefix'] . $this->tableName;
|
| 330 |
}
|
| 331 |
$this->qtableName = $dbo->qtable($this->fullTableName, $this->schema);
|
| 332 |
|
| 333 |
if (!$this->_prepareMeta()) {
|
| 334 |
return false;
|
| 335 |
}
|
| 336 |
$this->fields = array_keys($this->meta);
|
| 337 |
|
| 338 |
if (is_array($this->validateRules)) {
|
| 339 |
foreach ($this->validateRules as $fieldName => $rules) {
|
| 340 |
$fieldName = strtoupper($fieldName);
|
| 341 |
if (!isset($this->meta[$fieldName])) { continue; }
|
| 342 |
foreach ((array)$rules as $ruleName => $rule) {
|
| 343 |
$this->meta[$fieldName][$ruleName] = $rule;
|
Filename: /server/apache/fleaphp/FLEA/FLEA/Db/TableDataGateway.php [306]
#14 FLEA_Db_TableDataGateway::setDBO(FLEA_Db_Driver_Mysql)
ARGS: :
Array
(
[0] => FLEA_Db_Driver_Mysql Object
(
[NEXT_ID_SQL] => UPDATE %s SET id = LAST_INSERT_ID(id + 1)
[CREATE_SEQ_SQL] => CREATE TABLE %s (id INT NOT NULL)
[INIT_SEQ_SQL] => INSERT INTO %s VALUES (%s)
[DROP_SEQ_SQL] => DROP TABLE %s
[META_COLUMNS_SQL] => SHOW FULL COLUMNS FROM %s
[PARAM_STYLE] => ?
[HAS_INSERT_ID] => 1
[HAS_AFFECTED_ROWS] => 1
[_mysqlVersion] => 5.5.20-log
[TRUE_VALUE] => 1
[FALSE_VALUE] => 0
[NULL_VALUE] => NULL
[HAS_TRANSACTION] =>
[HAS_SAVEPOINT] =>
[RESULT_FIELD_NAME_LOWER] =>
[dsn] => Array
(
[driver] => mysql
[host] => localhost
[login] => xietong
[password] => tcmiebocai$%^
[database] => xietong
[prefix] =>
[port] =>
[options] =>
[schema] =>
[id] => mysql://xietong:tcmiebocai$%^@localhost_/xietong//
)
[conn] => Resource id #13
[log] => Array
(
[0] => SELECT VERSION()
[1] => SET NAMES 'utf8'
[2] => DELETE FROM `session` WHERE `session_activity` < 1327724282
[3] => SELECT `session_data` FROM `session` WHERE `session_id` = '0li5k18as3756nqec0m8lvlp62' AND `session_activity` >= 1327724282
[4] => SHOW FULL COLUMNS FROM `field`
[5] => SELECT `field`.`company_id` AS flea_pkref_company_id, `field`.* FROM `field` WHERE `field`.`company_id` = '1119' LIMIT 1
[6] => SHOW FULL COLUMNS FROM `company_category`
[7] => SELECT `field`.`company_id` AS flea_pkref_company_id, `company_category`.* FROM `company_category` LEFT JOIN `field` ON `field`.`company_id` IN ('1119') WHERE `field`.`category1` = `company_category`.`catid`
[8] => SELECT `field`.`company_id` AS flea_pkref_company_id, `company_category`.* FROM `company_category` LEFT JOIN `field` ON `field`.`company_id` IN ('1119') WHERE `field`.`category2` = `company_category`.`catid`
[9] => SHOW FULL COLUMNS FROM `province`
)
[querycount] => 10
[lasterr] => Table 'xietong.province' doesn't exist
[lasterrcode] => 1146
[_insertId] =>
[_transCount] => 0
[_hasFailedQuery] =>
[_savepointStack] => Array
(
)
[enableLog] => 1
)
)
SOURCE CODE:
| 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 |
}
|
| 312 |
}
|
| 313 |
|
| 314 |
/**
|
| 315 |
* 设置数据库访问对象
|
| 316 |
*
|
Filename: /server/apache/fleaphp/FLEA/FLEA.php [422]
#13 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: /server/apache/fleaphp/FLEA/FLEA/Db/TableLink.php [394]
#12 FLEA::getSingleton('province')
ARGS: :
Array
(
[0] => province
)
SOURCE CODE:
| 384 |
{
|
| 385 |
if ($this->init) { return; }
|
| 386 |
if (FLEA::isRegistered($this->assocTDGObjectId)) {
|
| 387 |
$this->assocTDG =& FLEA::registry($this->assocTDGObjectId);
|
| 388 |
} else {
|
| 389 |
if ($this->assocTDGObjectId) {
|
| 390 |
FLEA::loadClass($this->tableClass);
|
| 391 |
$this->assocTDG =& new $this->tableClass(array('dbo' => & $this->dbo));
|
| 392 |
FLEA::register($this->assocTDG, $this->assocTDGObjectId);
|
| 393 |
} else {
|
| 394 |
$this->assocTDG =& FLEA::getSingleton($this->tableClass);
|
| 395 |
}
|
| 396 |
}
|
| 397 |
$this->init = true;
|
| 398 |
}
|
| 399 |
|
| 400 |
/**
|
| 401 |
* 统计关联记录数
|
| 402 |
*
|
| 403 |
* @param array $assocRowset
|
| 404 |
* @param string $mappingName
|
Filename: /server/apache/fleaphp/FLEA/FLEA/Db/TableLink.php [643]
#11 FLEA_Db_TableLink::init()
ARGS: :
Array
(
)
SOURCE CODE:
| 633 |
if (empty($row)) { return true; }
|
| 634 |
if (!$this->init) { $this->init(); }
|
| 635 |
return $this->_saveAssocDataBase($row);
|
| 636 |
}
|
| 637 |
|
| 638 |
/**
|
| 639 |
* 完全初始化关联对象
|
| 640 |
*/
|
| 641 |
function init()
|
| 642 |
{
|
| 643 |
parent::init();
|
| 644 |
if (is_null($this->foreignKey)) {
|
| 645 |
$this->foreignKey = $this->assocTDG->primaryKey;
|
| 646 |
}
|
| 647 |
$this->qforeignKey = $this->dbo->qfield($this->foreignKey, $this->mainTDG->fullTableName, $this->mainTDG->schema);
|
| 648 |
}
|
| 649 |
}
|
| 650 |
|
| 651 |
/**
|
| 652 |
* FLEA_Db_HasManyLink 封装 has many 关系
|
| 653 |
*
|
Filename: /server/apache/fleaphp/FLEA/FLEA/Db/TableLink.php [615]
#10 FLEA_Db_BelongsToLink::init()
ARGS: :
Array
(
)
SOURCE CODE:
| 605 |
|
| 606 |
/**
|
| 607 |
* 返回用于查询关联表数据的SQL语句
|
| 608 |
*
|
| 609 |
* @param string $in
|
| 610 |
*
|
| 611 |
* @return string
|
| 612 |
*/
|
| 613 |
function getFindSQL($in)
|
| 614 |
{
|
| 615 |
if (!$this->init) { $this->init(); }
|
| 616 |
$fields = $this->mainTDG->qpk . ' AS ' . $this->mainTDG->pka . ', ' . $this->dbo->qfields($this->fields, $this->assocTDG->fullTableName, $this->assocTDG->schema);
|
| 617 |
|
| 618 |
$sql = "SELECT {$fields} FROM {$this->assocTDG->qtableName} LEFT JOIN {$this->mainTDG->qtableName} ON {$this->mainTDG->qpk} {$in} WHERE {$this->qforeignKey} = {$this->assocTDG->qpk} ";
|
| 619 |
$in = '';
|
| 620 |
return parent::_getFindSQLBase($sql, $in);
|
| 621 |
}
|
| 622 |
|
| 623 |
/**
|
| 624 |
* 创建或更新主表记录时,保存关联的数据
|
| 625 |
*
|
Filename: /server/apache/fleaphp/FLEA/FLEA/Db/TableDataGateway.php [482]
#9 FLEA_Db_BelongsToLink::getFindSQL('IN ('1119')')
ARGS: :
Array
(
[0] => IN ('1119')
)
SOURCE CODE:
| 472 |
*
|
| 473 |
* 查询获得数据后,将关联表的数据和主表数据装配在一起
|
| 474 |
*/
|
| 475 |
$callback = create_function('& $r, $o, $m', '$r[$m] = null;');
|
| 476 |
foreach ($this->links as $link) {
|
| 477 |
/* @var $link FLEA_Db_TableLink */
|
| 478 |
$mn = $link->mappingName;
|
| 479 |
if (!$link->enabled || !$link->linkRead) { continue; }
|
| 480 |
if (!$link->countOnly) {
|
| 481 |
array_walk($assocRowset, $callback, $mn);
|
| 482 |
$sql = $link->getFindSQL($in);
|
| 483 |
$this->dbo->assemble($sql, $assocRowset, $mn, $link->oneToOne, $this->pka, $link->limit);
|
| 484 |
} else {
|
| 485 |
$link->calcCount($assocRowset, $mn, $in);
|
| 486 |
}
|
| 487 |
}
|
| 488 |
|
| 489 |
return $rowset;
|
| 490 |
}
|
| 491 |
|
| 492 |
/**
|
Filename: /server/apache/fleaphp/FLEA/FLEA/Db/TableDataGateway.php [400]
#8 FLEA_Db_TableDataGateway::findAll(array(1), , 1, '*', 1)
ARGS: :
Array
(
[0] => Array
(
[company_id] => 1119
)
[1] =>
[2] => 1
[3] => *
[4] => 1
)
SOURCE CODE:
| 390 |
*
|
| 391 |
* @param mixed $conditions
|
| 392 |
* @param string $sort
|
| 393 |
* @param mixed $fields
|
| 394 |
* @param mixed $queryLinks
|
| 395 |
*
|
| 396 |
* @return array
|
| 397 |
*/
|
| 398 |
function & find($conditions, $sort = null, $fields = '*', $queryLinks = true)
|
| 399 |
{
|
| 400 |
$rowset =& $this->findAll($conditions, $sort, 1, $fields, $queryLinks);
|
| 401 |
if (is_array($rowset)) {
|
| 402 |
$row = reset($rowset);
|
| 403 |
} else {
|
| 404 |
$row = false;
|
| 405 |
}
|
| 406 |
unset($rowset);
|
| 407 |
return $row;
|
| 408 |
}
|
| 409 |
|
| 410 |
/**
|
Filename: /server/apache/fleaphp/FLEA/FLEA/Db/TableDataGateway.php [637]
#7 FLEA_Db_TableDataGateway::find(array(1), , '*')
ARGS: :
Array
(
[0] => Array
(
[company_id] => 1119
)
[1] =>
[2] => *
)
SOURCE CODE:
| 627 |
*
|
| 628 |
* @param string $field
|
| 629 |
* @param mixed $value
|
| 630 |
* @param string $sort
|
| 631 |
* @param mixed $fields
|
| 632 |
*
|
| 633 |
* @return array
|
| 634 |
*/
|
| 635 |
function & findByField($field, $value, $sort = null, $fields = '*')
|
| 636 |
{
|
| 637 |
return $this->find(array($field => $value), $sort, $fields);
|
| 638 |
}
|
| 639 |
|
| 640 |
/**
|
| 641 |
* 返回具有指定字段值的所有记录
|
| 642 |
*
|
| 643 |
* @param string $field
|
| 644 |
* @param mixed $value
|
| 645 |
* @param string $sort
|
| 646 |
* @param array $limit
|
| 647 |
* @param mixed $fields
|
Filename: /server/apache/xietong/application/Model/Company.php [74]
#6 FLEA_Db_TableDataGateway::findByField('company_id', '1119')
ARGS: :
Array
(
[0] => company_id
[1] => 1119
)
SOURCE CODE:
| 64 |
|
| 65 |
/**
|
| 66 |
* 取得一条公司基本信息记录
|
| 67 |
*
|
| 68 |
* @param int $company_id
|
| 69 |
* @return array
|
| 70 |
*/
|
| 71 |
function getFiledById($company_id)
|
| 72 |
{
|
| 73 |
$this->loadObj(1);
|
| 74 |
return $this->fieldObj->findByField('company_id',$company_id);
|
| 75 |
}
|
| 76 |
|
| 77 |
/**
|
| 78 |
* 根据公司的二级域名取得公司信息
|
| 79 |
*
|
| 80 |
* @param String $domain
|
| 81 |
* @return Array
|
| 82 |
*/
|
| 83 |
function getFieldByDomain($domain)
|
| 84 |
{
|
Filename: /server/apache/xietong/application/Controller/Company.php [54]
#5 Model_Company::getFiledById('1119')
ARGS: :
Array
(
[0] => 1119
)
SOURCE CODE:
| 44 |
$this->model->fieldObj->relink();
|
| 45 |
//取得公司id
|
| 46 |
if(!$company_id = intval($_GET['company_id']))
|
| 47 |
{
|
| 48 |
if(!$domain = trim($_GET['domain']))
|
| 49 |
m_404('二级域名不存在|'.$domain);
|
| 50 |
$company_id = $company_id = Model_User::getCompanyId($domain);
|
| 51 |
if(!$company_id)
|
| 52 |
m_404('没有company_id|'.$company_id);
|
| 53 |
}
|
| 54 |
if(!$this->companyField = $this->model->getFiledById($company_id))
|
| 55 |
m_404('no company info |'.$company_id);
|
| 56 |
if(!$this->companyField['enable'])
|
| 57 |
js_alert($this->companyField['name'].' 此公司已被屏蔽,如有问题,请与我们联系!','',domain);
|
| 58 |
|
| 59 |
$this->companyField['logo'] = $this->model->getLogo($this->companyField['company_id']);
|
| 60 |
$GLOBALS[company_field] = $this->companyField;
|
| 61 |
FLEA::register($this->model,COMPANY_MODEL);
|
| 62 |
|
| 63 |
//装载系统设置
|
| 64 |
FLEA::setAppInfValue('viewConfig','template_dir',FLEA::getAppInfValue('viewConfig','template_dir').'/template'.$this->companyField['template']);
|
Filename: /server/apache/fleaphp/FLEA/FLEA/Dispatcher/Simple.php [106]
#4 Controller_Company::__construct('company')
ARGS: :
Array
(
[0] => company
)
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: /server/apache/fleaphp/FLEA/FLEA/Dispatcher/Auth.php [127]
#3 FLEA_Dispatcher_Simple::_executeAction('company', 'index', 'Controller_Company')
ARGS: :
Array
(
[0] => company
[1] => index
[2] => Controller_Company
)
SOURCE CODE:
| 117 |
* @return mixed
|
| 118 |
*/
|
| 119 |
function dispatching()
|
| 120 |
{
|
| 121 |
$controllerName = $this->getControllerName();
|
| 122 |
$actionName = $this->getActionName();
|
| 123 |
$controllerClass = $this->getControllerClass($controllerName);
|
| 124 |
|
| 125 |
if ($this->check($controllerName, $actionName, $controllerClass)) {
|
| 126 |
// 检查通过,执行控制器方法
|
| 127 |
return $this->_executeAction($controllerName, $actionName, $controllerClass);
|
| 128 |
} else {
|
| 129 |
// 检查失败
|
| 130 |
$callback = FLEA::getAppInf('dispatcherAuthFailedCallback');
|
| 131 |
|
| 132 |
$rawACT = $this->getControllerACT($controllerName, $controllerClass);
|
| 133 |
if (is_null($rawACT) || empty($rawACT)) { return true; }
|
| 134 |
$ACT = $this->_auth->prepareACT($rawACT);
|
| 135 |
$roles = $this->_auth->getRolesArray();
|
| 136 |
$args = array($controllerName, $actionName, $controllerClass, $ACT, $roles);
|
| 137 |
|
Filename: /server/apache/fleaphp/FLEA/FLEA.php [816]
#2 FLEA_Dispatcher_Auth::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: /server/apache/xietong/index.php [55]
#1 FLEA::runMVC()
ARGS: :
Array
(
)
SOURCE CODE:
| 45 |
FLEA::setAppInf('dispatcher','Other_ReWrite');
|
| 46 |
|
| 47 |
/**
|
| 48 |
* 载入重写规则
|
| 49 |
*/
|
| 50 |
FLEA::setAppInf('routerConfig',$applicationPath.'Controller'.pathInterval.'Router.php');
|
| 51 |
|
| 52 |
/**
|
| 53 |
* 启动MVC
|
| 54 |
*/
|
| 55 |
FLEA::runMVC();
|
| 56 |
|
| 57 |
//dump($_GET);
|