資源描述:
《PHP封裝操作數(shù)據(jù)庫(kù)類》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、PHP封裝操作數(shù)據(jù)庫(kù)類我們?cè)诰W(wǎng)站開(kāi)發(fā)時(shí)比較合理的做法就是我們的常用的一些程序做成函數(shù)或封閉成類,這樣可以重復(fù)利用,可以節(jié)約開(kāi)發(fā)成本了,下面我來(lái)給各位介紹了常使用的類。有面向?qū)ο蠹夹g(shù)基礎(chǔ)的編程人員看一天就可以寫(xiě)起來(lái)了。而PHP在訪問(wèn)數(shù)據(jù)庫(kù)的時(shí)候又經(jīng)常會(huì)出現(xiàn)各種問(wèn)題,如字符編碼問(wèn)題、SQL語(yǔ)法錯(cuò)誤問(wèn)題、PHP處理數(shù)據(jù)記錄對(duì)象和返回對(duì)象的問(wèn)題等。我這里寫(xiě)了一個(gè)數(shù)據(jù)庫(kù)操作類,封裝了數(shù)據(jù)庫(kù)增刪添改等操作,很方便使用。用這個(gè)類,可以加速網(wǎng)站的后臺(tái)開(kāi)發(fā)。優(yōu)點(diǎn):1.方便快捷,數(shù)據(jù)庫(kù)操作只需調(diào)用接口;2.統(tǒng)一編碼(utf8),不易導(dǎo)致亂碼
2、3.結(jié)構(gòu)清晰.如處理前端請(qǐng)求的后臺(tái)程序(test.php)+表封裝類(user.class.php)+數(shù)據(jù)庫(kù)封裝類(db.class.php)+配置信息(configuration.php)以下例子有四個(gè)文件:configuration.php+db.class.php+user.class.php+test.php,放在同一個(gè)目錄下。首先是一個(gè)數(shù)據(jù)庫(kù)配置的文件類configuration.php代碼如下
3、lhost');//服務(wù)器define('DB_USER','root');//數(shù)據(jù)庫(kù)用戶名define('DB_PASSWORD','');//數(shù)據(jù)庫(kù)密碼define('DB_NAME','test0');//默認(rèn)數(shù)據(jù)庫(kù)define('DB_CHARSET','utf8');//數(shù)據(jù)庫(kù)字符集define('TIMEZONE',"PRC");//時(shí)區(qū)設(shè)置?>接下來(lái)就是數(shù)據(jù)庫(kù)操作類db.class.php代碼如下
4、default_timezone_set(TIMEZONE);/***類名:DB*說(shuō)明:數(shù)據(jù)庫(kù)操作類*/classDB{public$host;//服務(wù)器public$username;//數(shù)據(jù)庫(kù)用戶名public$password;//數(shù)據(jù)密碼public$dbname;//數(shù)據(jù)庫(kù)名public$conn;//數(shù)據(jù)庫(kù)連接變量/***DB類構(gòu)造函數(shù)*/publicfunctionDB($host=DB_HOST,$username=DB_USER,$password=DB_PASSWORD,$dbname=DB_NAME
5、){$this->host=$host;$this->username=$username;$this->password=$password;$this->dbname=$dbname;}/***打開(kāi)數(shù)據(jù)庫(kù)連接*/publicfunctionopen(){$this->conn=mysql_connect($this->host,$this->username,$this->password);mysql_select_db($this->dbname);mysql_query("SETCHARACTERSETutf8
6、");}/***關(guān)閉數(shù)據(jù)連接*/publicfunctionclose(){mysql_close($this->conn);}/***通過(guò)sql語(yǔ)句獲取數(shù)據(jù)*@return:array()*/publicfunctiongetObjListBySql($sql){$this->open();$rs=mysql_query($sql,$this->conn);$objList=array();while($obj=mysql_fetch_object($rs)){if($obj){$objList[]=$obj;}}$t
7、his->close();return$objList;}/***向數(shù)據(jù)庫(kù)表中插入數(shù)據(jù)*@param:$table,表名*@param:$columns,包含表中所有字段名的數(shù)組。默認(rèn)空數(shù)組,則是全部有序字段名*@param:$values,包含對(duì)應(yīng)所有字段的屬性值的數(shù)組*/publicfunctioninsertData($table,$columns=array(),$values=array()){$sql='insertinto'.$table.'(';for($i=0;$i8、i++){$sql.=$columns[$i];if($i