PHP DB 封裝是一種將數(shù)據(jù)庫操作進(jìn)行封裝的技術(shù),可以讓我們更加方便地操作數(shù)據(jù)庫,而不必每次都去寫大量的數(shù)據(jù)庫操作代碼。
封裝的好處是,可以將一些重復(fù)性的操作進(jìn)行整合,讓代碼更加簡潔,降低出錯的可能性。
比如,我們可以封裝一個數(shù)據(jù)庫連接類,讓每次連接數(shù)據(jù)庫的代碼都可以簡單地調(diào)用該類,而不必每次都進(jìn)行繁瑣的連接過程。
class DB{ private $host; private $user; private $password; private $database; public function __construct($host, $user, $password, $database){ $this->host = $host; $this->user = $user; $this->password = $password; $this->database = $database; $this->connect(); } private function connect(){ $mysqli = new mysqli($this->host, $this->user, $this->password, $this->database); if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } return $mysqli; } }
以上是一個基本的數(shù)據(jù)庫連接類的封裝,調(diào)用時只需要傳入相應(yīng)的參數(shù):
$db = new DB('localhost', 'root', '123456', 'test');
另外,我們還可以封裝常用的數(shù)據(jù)庫操作,比如 insert、select、update、delete 等操作:
class DB{ ... public function insert($table, $values){ $mysqli = $this->connect(); $cols = implode(',', array_keys($values)); $values = implode(',', array_values($values)); $sql = "INSERT INTO `$table` ($cols) VALUES ($values)"; $result = $mysqli->query($sql); if(!$result){ return false; } return $mysqli->insert_id; } public function select($table, $cols = '*', $where = '', $order = '', $limit = ''){ $mysqli = $this->connect(); $sql = "SELECT $cols FROM `$table`"; if($where){ $sql .= " WHERE $where"; } if($order){ $sql .= " ORDER BY $order"; } if($limit){ $sql .= " LIMIT $limit"; } $result = $mysqli->query($sql); if(!$result){ return false; } $data = array(); while($row = $result->fetch_assoc()){ $data[] = $row; } return $data; } ... }
以上是 insert 和 select 兩個操作的封裝,可以直接調(diào)用:
$db = new DB('localhost', 'root', '123456', 'test'); //插入一個數(shù)據(jù) $data = array('name' =>'Tom', 'age' =>'20'); $db->insert('user', $data); //查詢用戶表的所有數(shù)據(jù) $data = $db->select('user');
封裝還可以為數(shù)據(jù)庫操作添加一些自定義的方法,來滿足業(yè)務(wù)需求。
比如,我們可以封裝一個方法,來查詢指定條件下的記錄數(shù)量:
class DB{ ... public function count($table, $where){ $mysqli = $this->connect(); $sql = "SELECT count(*) as count FROM `$table` WHERE $where"; $result = $mysqli->query($sql); if(!$result){ return false; } $row = $result->fetch_assoc(); return $row['count']; } }
以上是 count 方法的封裝,可以直接調(diào)用:
$db = new DB('localhost', 'root', '123456', 'test'); //查詢用戶表中年齡大于等于20的記錄數(shù)量 $count = $db->count('user', 'age>=20');
總之,PHP DB 封裝可以讓我們更加方便地操作數(shù)據(jù)庫,減少出錯的可能性,提高效率。當(dāng)然,封裝的方法和技巧還有很多,需要不斷學(xué)習(xí)和實踐。
上一篇php db utils
下一篇php db 類