日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

php mysql db封装类_封装自己的DB类(PHP)

發(fā)布時(shí)間:2025/3/20 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php mysql db封装类_封装自己的DB类(PHP) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

classDB{//屬性

private $host;private $port;private $user;private $pass;private $dbname;private $charset;private $prefix; //表前綴

private $link; //連接資源(連接數(shù)據(jù)庫(kù),一般會(huì)返回一個(gè)資源,所以需要定義一個(gè)link屬性)

//構(gòu)造方法(作用:為了初始化對(duì)象的屬性),會(huì)被自動(dòng)調(diào)用

/** @param1 array $arr,默認(rèn)為空,里面是一個(gè)關(guān)聯(lián)數(shù)組,里面有7個(gè)元素

* array('host' => 'localhost','port' => '3306');*/

public function __construct($arr = array()){//初始化

$this->host = isset($arr['host']) ? $arr['host'] : 'localhost';//先判斷是否有自己的host,如果有就用自己的host,否則就使用默認(rèn)的localhost

$this->port = isset($arr['port']) ? $arr['port'] : '3306';$this->user = isset($arr['user']) ? $arr['user'] : 'root';$this->pass = isset($arr['pass']) ? $arr['pass'] : 'root';$this->dbname = isset($arr['dbname']) ? $arr['dbname'] : 'mydatabase';$this->charset = isset($arr['charset']) ? $arr['charset'] : 'utf8';$this->prefix = isset($arr['prefix']) ? $arr['prefix'] : '';//連接數(shù)據(jù)庫(kù)(類是要操作數(shù)據(jù)庫(kù),因此要連接數(shù)據(jù)庫(kù))

$this->connect();//設(shè)置字符集

$this->setCharset();//選擇數(shù)據(jù)庫(kù)

$this->setDbname();

}/** 連接數(shù)據(jù)庫(kù)*/

private functionconnect(){//mysql擴(kuò)展連接

$this->link = mysql_connect($this->host . ':' . $this->port,$this->user,$this->pass);//判斷結(jié)果

if(!$this->link){//結(jié)果出錯(cuò)了

//暴力處理,如果是真實(shí)線上項(xiàng)目(生產(chǎn)環(huán)境)必須寫入到日志文件

echo '數(shù)據(jù)庫(kù)連接錯(cuò)誤:
';echo '錯(cuò)誤編號(hào)' . mysql_errno() . '
';echo '錯(cuò)誤內(nèi)容' . mysql_error() . '
';exit;

}

}/** 設(shè)置字符集*/

private functionsetCharset(){//設(shè)置

$this->db_query("set names {$this->charset}");

}/** 選擇數(shù)據(jù)庫(kù)*/

private functionsetDbname(){$this->db_query("use {$this->dbname}");

}/** 增加數(shù)據(jù)

* @param1 string $sql,要執(zhí)行的插入語(yǔ)句

* @return boolean,成功返回是自動(dòng)增長(zhǎng)的ID,失敗返回FALSE*/

public function db_insert($sql){//發(fā)送數(shù)據(jù)

$this->db_query($sql);//成功返回自增ID

return mysql_affected_rows() ? mysql_insert_id() : FALSE;

}/** 刪除數(shù)據(jù)

* @param1 string $sql,要執(zhí)行的刪除語(yǔ)句

* @return Boolean,成功返回受影響的行數(shù),失敗返回FALSE*/

public function db_delete($sql){//發(fā)送SQL

$this->db_query($sql);//判斷結(jié)果

return mysql_affected_rows() ? mysql_affected_rows() : FALSE;

}/** 更新數(shù)據(jù)

* @param1 string $sql,要執(zhí)行的更新語(yǔ)句

* @return Boolean,成功返回受影響的行數(shù),失敗返回FALSE*/

public function db_update($sql){//發(fā)送SQL

$this->db_query($sql);//判斷結(jié)果

return mysql_affected_rows() ? mysql_affected_rows() : FALSE;

}/** 查詢:查詢一條記錄

* @param1 string $sql,要查詢的SQL語(yǔ)句

* @return mixed,成功返回一個(gè)數(shù)組,失敗返回FALSE*/

public function db_getRow($sql){//發(fā)送SQL

$res = $this->db_query($sql);//判斷返回

return mysql_num_rows($res) ? mysql_fetch_assoc($res) : FALSE;

}/** 查詢:查詢多條記錄

* @param1 string $sql,要查詢的SQL語(yǔ)句

* @return mixed,成功返回一個(gè)二維數(shù)組,失敗返回FALSE*/

public function db_getAll($sql){//發(fā)送SQL

$res = $this->db_query($sql);//判斷返回

if(mysql_num_rows($res)){//循環(huán)遍歷

$list = array();//遍歷

while($row = mysql_fetch_assoc($res)){$list[] = $row;

}//返回

return $list;

}//返回FALSE

return FALSE;

}/** mysql_query錯(cuò)誤處理

* @param1 string $sql,需要執(zhí)行的SQL語(yǔ)句

* @return mixed,只要語(yǔ)句不出錯(cuò),全部返回*/

private function db_query($sql){//發(fā)送SQL

$res = mysql_query($sql);//判斷結(jié)果

if(!$res){//結(jié)果出錯(cuò)了

//暴力處理,如果是真實(shí)線上項(xiàng)目(生產(chǎn)環(huán)境)必須寫入到日志文件

echo '語(yǔ)句出現(xiàn)錯(cuò)誤:
';echo '錯(cuò)誤編號(hào)' . mysql_errno() . '
';echo '錯(cuò)誤內(nèi)容' . mysql_error() . '
';exit;

}//沒(méi)有錯(cuò)誤

return $res;

}//__sleep方法

public function__sleep(){//返回需要保存的屬性的數(shù)組

return array('host','port','user','pass','dbname','charset','prefix');

}//__wakeup方法

public function__wakeup(){//連接資源

$this->connect();//設(shè)置字符集和選中數(shù)據(jù)庫(kù)

$this->setCharset();$this->setDbname();

}/** 獲取完整的表名*/

protected functiongetTableName(){//完整表名:前綴+表名

return $this->prefix . $this->table;

}

}//這個(gè)DB類,一般不寫析構(gòu)(不釋放資源)

總結(jié)

以上是生活随笔為你收集整理的php mysql db封装类_封装自己的DB类(PHP)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。