我們在網站開發時比較合理的做法就是我們的常用的一些程序做成函數或封閉成類,這樣可以重復利用,可以節約開發成本了,下面我來給各位介紹了我常使用的類。
有面向對象技術基礎的編程人員看一天就可以寫起來了。而PHP在訪問數據庫的時候又經常會出現各種問題,如字符編碼問題、SQL語法錯誤問題、PHP處理數據記錄對象和返回對象的問題等。我這裡寫了一個數據庫操作類,封裝了數據庫增刪添改等操作,很方便使用。用這個類,可以加速網站的後台開發。
優點:
1.方便快捷, 數據庫操作只需調用接口;
2.統一編碼(utf8),不易導致亂碼
3.結構清晰. 如處理前端請求的後台程序(test.php) + 表封裝類(user.class.php) + 數據庫封裝類(db.class.php) + 配置信息(configuration.php)
以下例子有四個文件: configuration.php + db.class.php + user.class.php + test.php,放在同一個目錄下。
首先是一個數據庫配置的文件類configuration.php
代碼如下 復制代碼
<?php
/**
* 數據庫配置信息
*/
define('DB_HOST','localhost'); //服務器
define('DB_USER','root'); //數據庫用戶名
define('DB_PASSWORD',''); //數據庫密碼
define('DB_NAME','test0'); //默認數據庫
define('DB_CHARSET','utf8'); //數據庫字符集
define('TIMEZONE',"PRC"); //時區設置
?>
接下來就是數據庫操作類db.class.php
代碼如下 復制代碼 <?php接下來是測試了。我在phpmyadmin中建了一個test0數據庫,裡面建一張表user。然後用php寫一個user類對應數據庫中的user表。
user.class.php
代碼如下 復制代碼<?php
require_once("./db.class.php");
class User{
public $name = NULL;
public $password = NULL;
/**
* 構造函數
*/
public function __construct($name,$password){
$this->name = $name;
$this->password = $password;
}
public function insert(){
$db = new DB();
$resultid = $db->insertData("user",array(),array('',$this->name,$this->password));
return $resultid;
}
public static function getUserById($uid){
$db = new DB();
return $db->getDataByAtr("user",'uid',$uid);
}
public static function getUserByName($name){
$db = new DB();
@$data = $db->getObjListBySql("SELECT * FROM user WHERE name = '$name'");
if(count($data)!=0)return $data;
else return null;
}
public static function getAllUser(){
$db = new DB();
@$data = $db->getObjListBySql("SELECT * FROM user");
if(count($data)!=0) return $data;
else return null;
}
public static function deleteByUid($uid){
$admin = Admin::getAdminById($uid);
$db = new DB();
if($db->delete("user","uid",$uid)) return true;
else return false;
}
}
?>
測試程序: test.php
代碼如下 復制代碼<?php
header("Content-Type:text/html; charset=utf8");
require_once("./user.class.php");
$user = new User("HelloWorld","123456");
$user->insert();
$users = User::getAllUser();
foreach ($users as $u) {
echo "<br/>".$u->name."<br/>".$u->password."<br/>";
}
?>