這一節的,有急需的童鞋,可以先取用^^ <?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
3 回答
举报
0/150
提交
取消