/** * 初始化数据库 * @param str $name 表名 * @return obj 返回数据库对象 */ protected function db($name = '') { static $db; if (empty($db)) { $db = \Core\Db\Db::__init(); } $db->tableName($name); return $db; }
/** * 初始化数据库 * @param str $name 表名 * @return obj 返回数据库对象 */ protected static function db($name = '') { static $db; if (empty($db)) { $db = \Core\Db\Db::__init(); } $db->tableName($name); self::$prefix = $db->prefix; return $db; }
/** * 生成URL链接 * @param type $controller 链接的控制器 * @param array $param 参数 * @return type 返回URL */ public static final function url($controller, array $param = array()) { $db = \Core\Db\Db::__init(); $db->tableName('option'); $result = $db->where('option_name = "urlModel"')->find(); $urlModel = json_decode($result['value'], true); $url = ''; if ($urlModel['index'] == '0') { $url .= '/index.php/'; } else { $url .= '/'; } $dismantling = explode('-', $controller); $totalDismantling = count($dismantling); if ($totalDismantling == 2) { switch ($urlModel['urlModel']) { case '2': $url .= implode('-', $dismantling); $url .= self::urlLinkStr($param, '-'); break; case '3': $url .= implode('/', $dismantling); $url .= self::urlLinkStr($param, '/'); break; case '1': default: $url = $urlModel['index'] == '0' ? '/index.php' : '/'; $url .= "?m={$dismantling[0]}&a={$dismantling[1]}"; $url .= self::urlLinkStr($param); } } else { switch ($urlModel['urlModel']) { case '2': $url .= implode('-', $dismantling); $url .= self::urlLinkStr($param, '-'); break; case '3': $url .= implode('/', $dismantling); $url .= self::urlLinkStr($param, '/'); break; case '1': default: $url = $urlModel['index'] == '0' ? '/index.php' : '/'; $url .= "?g={$dismantling[0]}&m={$dismantling[1]}&a={$dismantling[2]}"; $url .= self::urlLinkStr($param); } } /** * 正常模式不会生成HTML后缀 */ if ($urlModel['suffix'] == '1' && $urlModel['urlModel'] != '1') { $url .= ".html"; } return DOCUMENT_ROOT . $url; }
/** * URL模式 * @param type $group 组参数 */ protected function urlModel($group = '') { //这里移除GET中可能潜在影响程序正确处理的数据。 unset($_GET['s'], $_GET['page'], $_GET[substr($_SERVER['REQUEST_URI'], 1)]); $db = Db::__init(); $db->tableName('option'); $result = $db->where('option_name = "urlModel"')->find(); $urlModel = json_decode($result['value'], true); $url = ''; if ($urlModel['index'] == '0') { $url .= '/index.php/'; } else { $url .= '/'; } /** * 正常模式不会生成HTML后缀 */ if ($urlModel['suffix'] == '1' && $urlModel['urlModel'] != '1') { $this->suffix = true; } switch ($urlModel['urlModel']) { case '2': $group = empty($group) ? '' : "{$group}-"; $url .= $group . MODULE . "-" . ACTION; $url .= $this->urlLinkStr($_GET, '-'); $this->linkStr = '-'; break; case '3': $group = empty($group) ? '' : "{$group}/"; $url .= $group . MODULE . "/" . ACTION; $url .= $this->urlLinkStr($_GET, '/'); $this->linkStr = '/'; break; case '1': default: $url = $urlModel['index'] == '0' ? '/index.php' : '/'; $group = empty($group) ? '' : "g={$group}&"; $url .= "?{$group}m=" . MODULE . "&a=" . ACTION; $url .= $this->urlLinkStr($_GET); $this->linkStr = ''; } return DOCUMENT_ROOT . $url; }
/** * SQL执行错误提示信息 */ public static function errorSql() { $db = \Core\Db\Db::__init(); if (!empty($db->errorInfo)) { self::recordLog(implode("\r", $db->errorInfo), false); } if (DEBUG == true) { /** * 处理最后一次执行的 SQL */ if (!empty($db->getLastSql)) { foreach ($db->param as $key => $value) { $placeholder[] = ":{$key}"; $paramValue[] = "'{$value['value']}'"; } $sql = str_replace($placeholder, $paramValue, $db->getLastSql); } $errorMes = "<b>Sql Run Error</b>: {$db->errorInfo['message']}"; $errorFile = "<b>Sql Error String</b>:<br/> " . implode("<br/>", explode("\n", $db->errorInfo['string'])); } else { $errorMes = "There was an error. Please try again later."; $errorFile = "That's all we know."; } header("HTTP/1.1 500 Internal Server Error"); $title = "500 Internal Server Error"; require self::promptPage(); exit; }
/** * 声明DB类 * @param type $table 表名 * @return type */ public function db($table = '') { $db = \Core\Db\Db::__init(); $db->tableName($table); return $db; }