這一節的,有急需的童鞋,可以先取用^^
<?php
//PDO資料庫操作類的封裝
class PdoMySQL{
public static $config=array();//設置連接參數,配置訊息
public static $link=null;//保存連接標識符
public static $pconnect=false;//是否開啟長連接
public static $dbVersion=null;//保存資料庫版本
public static $connected=false;//是否連接成功
public static $PDOStatement=null;//保存PDOStatement對象
//構造函數
public function __construct($dbConfig=''){
if(!class_exists("PDO")){
self::throw_excption('不支持PDO,請先開啟');
}
if(!is_array($dbConfig)){ //如果沒傳,則初始化
$dbConfig=array(
'hostname'=>DB_HOST,
'username'=>DB_USER,
'password'=>DB_PWD,
'database'=>DB_NAME,
'hostport'=>DB_PORT,
'dbms'=>DB_TYPE,
'dsn'=>DB_TYPE.":host=".DB_HOST.";dbname=".DB_NAME
);
}
//判斷是否有主機名
if(empty($dbConfig['hostname']))self::throw_exception('沒有定義資料庫配置,請先定義');
self::$config=$dbConfig;
if(empty(self::$config['params']))self::$config['params']=array();//第四個參數
if(!isset(self::$link)){//如果沒有連接對象
$configs=self::$config;
if(self::$pconnect){
//開啟長連接,添加到配置陣列中
$configs['params'][constant("PDO::ATTR_PERSISTENT")]=true;
}
try{
self::$link=new PDO($configs['dsn'],$configs['username'],$configs['password'],$configs['params']);
}catch(PDOException $e){
self::throw_exception($e->getMessage());
}
if(!self::$link){//如果連接失敗,拋出異常
self::throw_exception('PDO連接錯誤');
return false;
}
self::$link->exec('SET NAMES '.DB_CHARSET);
self::$dbVersion=self::$link->getAttribute(constant("PDO::ATTR_SERVER_VERSION"));
self::$connected=true;//代表連接成功
unset($configs);
}
}
/**
* 得到所有記錄
* @param string $sql
* @return unknown
*/
public static function getAll($sql=null){
if(!$sql){
self::query($sql);
}
$result=self::$PDOStatement->fetchAll(constant("PDO::FETCH_ASSOC"));//關聯陣列形式
return $result;
}
/**
* 自定義錯誤處理
* @param unknown $errMsg
*/
public static function throw_exception($errMsg){
echo '<div style="width:80%;background-color:#E8E8E8;color:#000;font-size:20px;padding:20px 0">'.$errMsg.'</div>';
}
}
?>
釋淨靈_南無阿彌陀佛
2014-10-11
1 回答
举报
0/150
提交
取消