核心代碼:
/* *pgsql類 */ class pgdb { public $pdo; public 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("pgsql:" . $hosturl . "port=$port;" . "dbname=$dbname;" , $username , $password , array( PDO::ATTR_PERSISTENT => true, ) ); } catch (Exception $ex) { header("Content-type: text/html; charset=utf-8"); $error = "數據庫初始化失敗,已強制斷開鏈接。<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> <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>'); exit(); } } $this->pdo = self::$PDOInstance; } }