//载入页面结束的钩子 if (function_exists('jieqi_hooks_end')) { jieqi_hooks_end(); } //结束相关连接 jieqi_freeresource(); //显示DEBUG信息 if (defined('JIEQI_DEBUG_MODE') && JIEQI_DEBUG_MODE > 0) { $runtime = explode(' ', microtime()); $debuginfo = 'Processed in ' . round($runtime[1] + $runtime[0] - JIEQI_START_TIME, 6) . ' second(s), '; if (function_exists('memory_get_usage')) { $debuginfo .= 'Memory usage ' . round(memory_get_usage() / 1024) . 'K, '; } $sqllog = array(); if (defined('JIEQI_DB_CONNECTED')) { $instance =& JieqiDatabase::retInstance(); if (!empty($instance)) { foreach ($instance as $db) { $sqllog = array_merge($sqllog, $db->sqllog('ret')); } } } $queries = count($sqllog); $debuginfo .= $queries . ' queries, '; if (defined('JIEQI_USE_GZIP') && JIEQI_USE_GZIP > 0) { $debuginfo .= 'Gzip enabled.'; } else { $debuginfo .= 'Gzip disabled.'; } if ($queries > 0) { foreach ($sqllog as $sql) {
/** * 根据数据库类型创建一个类 * * @param string $dbtype 数据库类型 * @param string $dbhost 数据库服务器地址 * @param string $dbuser 数据库用户名 * @param string $dbpass 数据库密码 * @param string $dbname 数据库名 * @param bool $getnew 其否强制创建新实例,默认否 * @access public * @return object 返回数据库实例 */ function &getInstance($dbtype = '', $dbhost = '', $dbuser = '', $dbpass = '', $dbname = '', $getnew = false) { $instance =& JieqiDatabase::retInstance(); if (empty($dbtype)) { $dbtype = JIEQI_DB_TYPE; } if (empty($dbhost)) { $dbhost = JIEQI_DB_HOST; } if (empty($dbuser)) { $dbuser = JIEQI_DB_USER; } if (empty($dbpass)) { $dbpass = JIEQI_DB_PASS; } if (empty($dbname)) { $dbname = JIEQI_DB_NAME; } $inskey = md5($dbtype . ',' . $dbhost . ',' . $dbuser . ',' . $dbpass . ',' . $dbname); $getnew = $dbtype == JIEQI_DB_TYPE && $dbhost == JIEQI_DB_HOST && $dbuser == JIEQI_DB_USER && $dbpass == JIEQI_DB_PASS && $dbname == JIEQI_DB_NAME ? false : true; if (!isset($instance[$inskey]) || $getnew) { switch ($dbtype) { case 'mysql': require_once 'mysql/db.php'; if ($getnew) { $db = new JieqiMySQLDatabase(); } else { $instance[$inskey] = new JieqiMySQLDatabase(); } break; case 'sqlite': require_once 'sqlite/db.php'; if ($getnew) { $db = new JieqiSQLiteDatabase(); } else { $instance[$inskey] = new JieqiSQLiteDatabase(); } break; default: jieqi_printfail('The database type (' . $dbtype . ') is not exists!'); return false; } if ($getnew) { if (!$db->connect($dbhost, $dbuser, $dbpass, $dbname)) { jieqi_printfail('Can not connect to database!<br /><br />error: ' . $db->error()); return false; } else { return $db; } } else { if (!$instance[$inskey]->connect($dbhost, $dbuser, $dbpass, $dbname)) { jieqi_printfail('Can not connect to database!<br /><br />error: ' . $instance[$inskey]->error()); return false; } } } if (!defined('JIEQI_DB_CONNECTED')) { @define('JIEQI_DB_CONNECTED', true); } return $instance[$inskey]; }