核心代码:
public $pdo;
public static $PDOInstance;
public $config;
public $data;
public $filed = '*';
public $table;
public $limit;
public $order;
public $where;
public $left;
原文链接:https://www.f2er.com/php/19120.htmlpublic static $PDOInstance;
public $config;
public $data;
public $filed = '*';
public $table;
public $limit;
public $order;
public $where;
public $left;
const LOGIN = 7;
const USER = 1;
const GROUP = 2;
const USERGROUP = 3;
const LOG = 6;
const WARING = 1;
const ERROR = 2;
const INFO = 0;
public function __construct() {
if (!self::$PDOInstance) {
$this->config = json_decode(file_get_contents("./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("pg<a href="https://www.jb51.cc/tag/sql/" target="_blank" class="keywords">sql</a>:"
. $hosturl
. "port=$port;"
. "dbname=$dbname;",$username,$password,array(
PDO::ATTR_PERSISTENT => true,)
);
} catch (Exception $ex) {
header("Content-type: text/html; charset=utf-8");
$error = "<a href="https://www.jb51.cc/tag/shujuku/" target="_blank" class="keywords">数据库</a>初始化失败,已强制断开<a href="https://www.jb51.cc/tag/lianjie/" target="_blank" class="keywords">链接</a>。<br />抓取到的异常栈如下:<br /><pre>" . print_r($ex,true) . "</pre>";
die($error);
}
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>
<<a href="https://www.jb51.cc/tag/Meta/" target="_blank" class="keywords">Meta</a> 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>');
exit();
}
}
$this->pdo = self::$PDOInstance;
}
}