20,359
社区成员
发帖
与我相关
我的任务
分享
/**
* 数据库构造函数
*/
public function __construct() {
// $this->memcache = $this->getMemecacheObject();
/** 单一实例 PDO对象 */
if (!self::$PDOInstance) {
$this->config = json_decode(file_get_contents(ROOT_ADDR."/private/config/db.json"), true);
$config = $this->config;
$host = $config["data_base"]["db_host"];
$dbname = $config["data_base"]["db_name"];
$port = $config["data_base"]["db_port"];
$username = $config["data_base"]["db_user"];
$password = $config["data_base"]["db_pwd"];
if ($config["data_base"]["db_host"] != 'localhost') {
$hosturl = "host=$host;";
}
try
{
self::$PDOInstance = new PDO("pgsql:"
. $hosturl
. "port=$port;"
. "dbname=$dbname;"
, $username
, $password
, array(
PDO::ATTR_PERSISTENT => true,
)
);
} catch (Exception $ex) {
$tools = new tools();
$path = $tools->log("数据库初始化失败,已强制断开链接。<br/>抓取到的异常栈如下:<br/><pre>" . print_r($ex, true) . "</pre>", 'db');
header("Content-type:text/html;charset=utf-8");
if ($config["SYSTEM"]["DEBUG"]) {
echo "数据库初始化失败,已强制断开链接。<br/>详细信息请访问{$path}文件日志";
} else {
echo "数据库初始化失败,请联系系统管理员。";
}
die();
}
try {
self::$PDOInstance->query("SET client_encoding='UTF-8';");
self::$PDOInstance->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
self::$PDOInstance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $exc) {
$this->pdo=NULL;
$doc = <<<DOC
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="layer/jquery-1.11.1.min.js"></script>
<script src="layer/layer.js"></script>
<head>
<body>
DOC;
print $doc;
$info=L('服务器变更请刷新');
print("<script>layer.msg('".$info."', {icon: 2,time: 30000},function(){location.reload();});</script>");
print('</body></html>');
self::$PDOInstance=NULL;
exit();
}
}
$this->pdo = self::$PDOInstance;
$this->getconnect_server();
}
public function __construct($data) {
parent::__construct();
}