<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    PHP封裝數據庫操作類

    時間:2025-04-29 11:42:19 php語言 我要投稿
    • 相關推薦

    PHP封裝數據庫操作類

      而PHP在訪問數據庫的時候又經常會出現各種問題,如字符編碼問題、SQL語法錯誤問題、PHP處理數據記錄對象和返回對象的問題等。下面內容由小編為大家介紹PHP封裝數據庫操作類方法,供大家參考!

      優點:

      方便快捷, 數據庫操作只需調用接口;

      統一編碼(utf8),不易導致亂碼

      結構清晰. 如處理前端請求的后臺程序(test.php) + 表封裝類(user.class.php) + 數據庫封裝類(db.class.php) + 配置信息(configuration.php)

      以下例子有四個文件: configuration.php + db.class.php + user.class.php + test.php,放在同一個目錄下。

      首先是一個數據庫配置的文件類configuration.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

      require_once("./configuration.php"); //引入配置常量文件

      date_default_timezone_set(TIMEZONE);

      /**

      * 類名:DB

      * 說明:數據庫操作類

      */

      class

      DB

      {

      public

      $host; //服務器

      public

      $username; //數據庫用戶名

      public

      $password; //數據密碼

      public

      $dbname; //數據庫名

      public

      $conn; //數據庫連接變量

      /**

      * DB類構造函數

      */

      public

      function DB($host=DB_HOST ,$username=DB_USER,$password=DB_PASSWORD,$dbname=DB_NAME)

      {

      $this->host = $host;

      $this->username = $username;

      $this->password = $password;

      $this->dbname = $dbname;

      }

      /**

      * 打開數據庫連接

      */

      public

      function open()

      {

      $this->conn = mysql_connect($this->host,$this->username,$this->password);

      mysql_select_db($this->dbname);

      mysql_query("SET CHARACTER SET utf8");

      }

      /**

      * 關閉數據連接

      */

      public

      function close()

      {

      mysql_close($this->conn);

      }

      /**

      * 通過sql語句獲取數據

      * @return: array()

      */

      public

      function getObjListBySql($sql)

      {

      $this->open();

      $rs

      = mysql_query($sql,$this->conn);

      $objList

      = array();

      while($obj

      = mysql_fetch_object($rs))

      {

      if($obj)

      {

      $objList[] = $obj;

      }

      }

      $this->close();

      return

      $objList;

      }

      /**

      * 向數據庫表中插入數據

      * @param:$table,表名

      * @param:$columns,包含表中所有字段名的數組。默認空數組,則是全部有序字段名

      * @param:$values,包含對應所有字段的屬性值的數組

      */

      public

      function Data($table,$columns=array(),$values=array())

      {

      $sql

      = ' into '.$table

      .'( ';

      for($i

      = 0; $i

      < sizeof($columns);$i

      ++)

      {

      $sql

      .= $columns[$i];

      if($i

      < sizeof($columns) - 1)

      {

      $sql

      .= ',';

      }

      }

      $sql

      .= ') values ( ';

      for($i

      = 0; $i

      < sizeof($values);$i

      ++)

      {

      $sql

      .= "'".$values[$i]."'";

      if($i

      < sizeof($values) - 1)

      {

      $sql

      .= ',';

      }

      }

      $sql

      .= ' )';

      $this->open();

      mysql_query($sql,$this->conn);

      $id

      = mysql__id($this->conn);

      $this->close();

      return

      $id;

      }

      /**

      * 通過表中的某一屬性獲取數據

      */

      public

      function getDataByAtr($tableName,$atrName,$atrValue){

      @$data

      = $this->getObjListBySql("SELECT * FROM ".$tableName." WHERE $atrName = '$atrValue'");

      if(count($data)!=0)return

      $data;

      return

      NULL;

      }

      /**

      * 通過表中的"id",刪除記錄

      */

      public

      function ($tableName,$atrName,$atrValue){

      $this->open();

      $Result

      = false;

      if(mysql_query("DELETE FROM ".$tableName." WHERE $atrName = '$atrValue'")) $Result

      = true;

      $this->close();

      if($Result) return

      true;

      else

      return false;

      }

      /**

      * 更新表中的屬性值

      */

      public

      function updateParamById($tableName,$atrName,$atrValue,$key,$value){

      $db

      = new

      DB();

      $db->open();

      if(mysql_query("UPDATE ".$tableName." SET $key = '$value' WHERE $atrName = '$atrValue' ")){ //$key不要單引號

      $db->close();

      return

      true;

      }

      else{

      $db->close();

      return

      false;

      }

      }

      /*

      * @description: 取得一個table的所有屬性名

      * @param: $tbName 表名

      * @return:字符串數組

      */

      public

      function fieldName($tbName){

      $resultName=array();

      $i=0;

      $this->open();

      $result

      = mysql_query("SELECT * FROM $tbName");

      while

      ($property

      = mysql_fetch_field($result)){

      $resultName[$i++]=$property->name;

      }

      $this->close();

      return

      $resultName;

      }

      }

      ?>

      接下來是測試了。我在phpmyadmin中建了一個test0數據庫,里面建一張表user。然后用php寫一個user類對應數據庫中的user表。

      user.class.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 (){

      $db

      = new

      DB();

      $resultid

      = $db->Data("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 ByUid($uid){

      $admin

      = Admin::getAdminById($uid);

      $db

      = new

      DB();

      if($db->("user","uid",$uid)) return

      true;

      else

      return false;

      }

      }

      ?>

      測試程序: test.php

      header("Content-Type:text/html; charset=utf8");

      require_once("./user.class.php");

      $user

      = new

      User("HelloWorld","123456");

      $user->();

      $users

      = User::getAllUser();

      foreach

      ($users

      as $u) {

      echo

      "

      ".$u->name."

      ".$u->password."

      ";

      }

      ?>

      運行結果:


    【PHP封裝數據庫操作類】相關文章:

    PHP數據庫操作類-ezSQL08-19

    PHP對數據庫MySQL的連接操作11-10

    PHP操作MySQL數據庫的基本類10-14

    PHP中FTP操作類代碼09-25

    php備份數據庫類的方法09-04

    關于php操作mysql執行數據庫查詢08-11

    PHP中如何定義類及其成員屬性與操作09-23

    PHP文件怎么操作09-03

    PHP中的Reload操作06-26

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人