這一節的,有急需的童鞋,可以先取用^^ <?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
提交
取消
2014-10-12
^-^...