亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP數據庫處理類

2024-09-04 11:44:13
字體:
來源:轉載
供稿:網友

在WEB應用程序開發數據庫操作類是一個必不可少的東西了,當然大家可以直接連接數據庫進行查詢,但這樣維護不方便,下面我整理了一個不錯的PHP數據庫處理類與各位分享.

最近在看后盾網的php視頻,主要內容是相關制作一個博客系統,感覺還是很有收獲,簡單的數據庫處理類,下面是其中講到的一個簡單的數據庫處理類,請見源碼:

  1. <?php 
  2.     /** 
  3.     * Created by JetBrains PhpStorm. 
  4.     * User: YangLiu 
  5.     * Date: 2013-7-12 
  6.     * Time: 下午6:19 
  7.     * Description:這是一個簡單的數據庫操作類,便于快速向數據庫插入數據、刪除數據,更新數據 
  8.     */ 
  9.     class db { 
  10.     //數據庫連接 
  11.     protected $mysqli
  12.     //表名 
  13.     protected $table
  14.     //選項 
  15.     protected $opt
  16.     /*** 
  17.     * 構造方法 
  18.     * @param $tab_name 
  19.     */ 
  20.     function __construct($tab_name){ 
  21.     $this->config($tab_name); 
  22.     } 
  23.       
  24.     // 配置方法 
  25.     protected function config($tab_name){ 
  26.     $this->db=new mysqli(DBHOST,DBUSER,DBPWD,DBNAME); 
  27.     //DBFIX為數據庫表前綴 
  28.     $this->table = DBFIX.$tab_name
  29.     if(mysqli_connect_errno()){ 
  30.     echo "數據庫連接錯誤".mysqli_connect_errno(); 
  31.     exit(); 
  32.     } 
  33.     $this->db->query("SET NAMES 'GBK'"); 
  34.       
  35.     //給opt數組設置初始值 
  36.     $this->opt['field'] = '*'
  37.     $this->opt['where']=$this->opt['order']=$this->opt['limit']=$this->opt['group'] = ''
  38.     } 
  39.       
  40.     // 獲得當前表字段 
  41.     function tbFields(){ 
  42.     $result = $this->db->query("DESC {$this->table}"); 
  43.     $fieldArr = array(); 
  44.     while(($row = $result->fetch_assoc())!=false){ 
  45.     $fieldArr[] = $row['Field']; 
  46.     } 
  47.     return $fieldArr
  48.     } 
  49.       
  50.     // 獲得查詢字段 
  51.     function field($field){ 
  52.     $fieldArr = is_string($field)?explode(",",$field):$field
  53.     if(is_array($fieldArr)){ 
  54.     $field = ''
  55.     foreach($fieldArr as $v){ 
  56.     $field.='`' . $v'`' . ','
  57.     } 
  58.     } 
  59.     return rtrim($field,','); 
  60.     } 
  61.       
  62.     // SQL條件方法 
  63.     function where($where){ 
  64.     $this->opt['where'] = is_string($where) ?"WHERE " . $where : ''
  65.     return $this
  66.     } 
  67.       
  68.     //limit方法 
  69.     function limit($limit){ 
  70.     $this->opt['limit'] = is_string($limit) ? "LIMIT ".$limit : ''
  71.     return $this
  72.     } 
  73.       
  74.     //排序方法 
  75.     function order($order){ 
  76.     $this->opt['order'] = is_string($order) ? "ORDER BY ".$order:''
  77.     return $this
  78.     } 
  79.       
  80.     // 分組GROUP BY 
  81.     function group($group){ 
  82.     $this->opt['group'] = is_string($group) ? 'GROUP BY'.$group : ''
  83.     return $this
  84.     } 
  85.       
  86.     //SELECT 
  87.     function select(){ 
  88.     $sql = "SELECT {$this->opt['field']} FROM {$this->table} 
  89.     {$this->opt['where']} {$this->opt['group']} {$this->opt['limit']} 
  90.     {$this->opt['order']} "; 
  91.     return $this->sql($sql); 
  92.     } 
  93.       
  94.     //DELETE方法 
  95.     function delete($id=''){ 
  96.     if($id == '' && emptyempty($this->opt['where'])){ 
  97.     die('查詢條件不能為空'); 
  98.     } 
  99.     if($id != ''){ 
  100.     if(is_array($id)){ 
  101.     $id = implode(',',$id); 
  102.     } 
  103.     $this->opt['where'] = "WHERE id IN (" .$id")"
  104.     } 
  105.     $sql = "DELETE FROM {$this->table} {$this->opt['where']} {$this->opt['limit']}"
  106.     //echo $sql."<br/>"; 
  107.     return $this->query($sql); 
  108.     } 
  109.       
  110.     //查閱單條記錄 
  111.     function find($id){ 
  112.     $sql = "SELECT {$this->opt['field']} FROM {$this->table} WHERE `id` = {$id}"
  113.     //echo $sql.'<br>'; 
  114.     return $this->sql($sql); 
  115.     } 
  116.       
  117.     // 添加數據 
  118.     function insert($args){ 
  119.     is_array($argsor die('參數非數組'); 
  120.     $fields = $this->field(array_keys($args)); 
  121.     $values = $this->values(array_values($args)); 
  122.     $sql = "INSERT INTO {$this->table} ({$fields}) VALUES($values)"
  123.     if($this->query($sql)>0){ 
  124.     return $this->db->insert_id; 
  125.     } 
  126.     return false; 
  127.     } 
  128.       
  129.     // 更新UPDATE 
  130.     function update($args){ 
  131.     is_array($argsor die("參數非數組"); 
  132.     if(emptyempty($this->opt['where'])) die("條件不能為空"); 
  133.     $set = ''
  134.     $gpc = get_magic_quotes_gpc(); 
  135.     while(list($k,$v) = each($args)){ 
  136.     $v = !$gpc?addslashes($v):$v
  137.     $set.="`{$k}`='".$v."',"
  138.     } 
  139.     $set = rtrim($set,','); 
  140.     $sql = "UPDATE {$this->table} SET $set {$this->opt['where']}"
  141.     return $this->query($sql); 
  142.     } 
  143.       
  144.     // 統計所有記錄數 
  145.     function count($tabname=''){ 
  146.     $tabname = $tabname==''?$this->table:$tabname
  147.     $sql = "SELECT `id` FROM {$tabname} {$this->opt['where']}"
  148.     //echo $sql.'<br/>'; 
  149.     return $this->query($sql); 
  150.     } 
  151.       
  152.     // 數據數組轉為字符串格式,同時進行轉議 
  153.     protected function values($value) { 
  154.     if (! get_magic_quotes_gpc ()) { 
  155.     $strValue = ''
  156.     foreach ( $value as $v ) { 
  157.     $strValue .= "'" . addslashes ( $v ) . "',"
  158.     } 
  159.     } else { 
  160.     foreach ( $value as $v ) { 
  161.     $strValue .= "'$v',"
  162.     } 
  163.     } 
  164.     return rtrim ( $strValue',' ); 
  165.     } 
  166.       
  167.     // 獲得結果集 
  168.     function sql($sql) { 
  169.     $result = $this->db->query($sqlor die($this->dbError()); 
  170.     $resultArr = array(); 
  171.     while(($row = $result->fetch_assoc())!=false){ 
  172.     $resultArr[] = $row
  173.     } 
  174.     return $resultArr
  175.     } 
  176.       
  177.     // 沒有結果集的SQL 
  178.     function query($sql){ 
  179.     $this->db->query($sqlor die($this->dbError()); 
  180.     return $this->db->affected_rows; 
  181.     }//開源代碼Vevb.com 
  182.       
  183.     // 返回錯誤 
  184.     function dbError(){ 
  185.     return $this->db->error; 
  186.     } 
  187.     } 
  188.     ?>  

以上是一個簡單的PHP數據庫處理類,就它的使用特地做個說明,下面對以上代碼中的部分相常量和變量作以說明:

$mysqli:對當前數據庫的鏈接引用

$table:當前數據庫的表名

$opt:當前數據庫的表的所有字段名

DBFIX:數據庫配置中的常量“表前綴”

DBHOST:數據庫主機

DBFIX:數據庫用戶名

DBPWD:數據庫密碼

DBNAME:數據庫名稱

數據庫處理類的使用方法,配置數據庫處理類,在使用數據庫處理類之前,你必須有一個相關的配置文件,下面我就寫一個connect.php文件,文件內容如下所示:

  1. <?php 
  2.     /** 
  3.     * Created by JetBrains PhpStorm. 
  4.     * User: YangLiu 
  5.     * Date: 2013-7-14 
  6.     * Time: 下午2:15 
  7.     * Description:數據庫配置文件 
  8.     */ 
  9.     define("DBHOST",'localhost'); //定義數據庫服務器連接地址 
  10.     define("DBUSER",'root'); //數據庫用戶名 
  11.     define("DBPWD",''); //數據庫密碼 
  12.     define("DBNAME",'blog'); //定義數據庫名 
  13.     define("DBFIX",'blog_'); //定義數據庫表的前綴 
  14. ?> 

為了讓您更簡單的理解,我就沒有建立更多的目錄,把所有的文件全部放在同一目錄,如果您覺得不好,也可以自行建立目錄,并重新根據情況來調整文件位置.

數據庫處理類的使用,使用數據庫,你要先引用connect.php和db.class.php文件,下面舉一個demo.php文件為例:

  1. <?php 
  2.     /** 
  3.     * Created by JetBrains PhpStorm. 
  4.     * User: LiuYang 
  5.     * Date: 2013-9-15 
  6.     * Time: 下午10:39 
  7.     * Description:演示DEMO文件 
  8.     */ 
  9.     include './config.php'//加載配置文件 
  10.     include './page.class.php'//加載數據庫處理類 
  11.       
  12.     $db = $db = new db('blog'); //鏈接數據庫的表blog_blog 
  13.       
  14.     ?> 

輸出數據庫表的字段名,輸出數據庫表的字段名,用的tbFields方法,代碼如下:

$tbField = $db->tbFields();var_dump($tbField);

其輸出結果如下:

  1. array (size=5) 
  2.   0 => string 'id' (length=2) 
  3.   1 => string 'btitle' (length=6) 
  4.   2 => string 'content' (length=7) 
  5.   3 => string 'status' (length=6) 
  6.   4 => string 'cid' (length=3) 

下面,再介紹一個數據庫處理類中的相關的另一個方法:

echo $db->field($tbFields);

最后的輸出結果:`id`,`btitle`,`content`,`status`,`cid`

統計所有記錄數,數據庫類中還有一個方法,用來統計數據的所有條數count方法,在我們的分頁處理中,它也就會顯示得重要了,代碼如下:

echo $db->count('blog'); 

注意:以上代碼是根據id來查閱,其中count方法代碼如下:

  1. // 統計所有記錄數 
  2.     function count($tabname=''){ 
  3.     $tabname = $tabname==''?$this->table:$tabname
  4.     $sql = "SELECT `id` FROM {$tabname} {$this->opt['where']}"
  5.     return $this->query($sql); 
  6.     } 

數據庫的增、刪、改、查

數據庫的相關操作無外乎就是增、刪、改、查,下面對其作以簡單介紹.

插入數據

insert方法向數據庫中插入數據,其中傳入的參數為一個數組,如array('btitle'=>'www.49028c.com','content'=>'小天地,大世界是一個技術交流博客')。其中數組的鍵名即為表的字段名,而鍵值即為想要插入的內容,請看下面的示例:

$inserArr = array('btitle'=>'www.49028c.com','content'=>'小天地,大世界是一個技術交流博客');$db->insert($inserArr);

刪除數據

delete方法是專門來刪除數據,為了防止數據被誤刪,數據刪除必須存在一定的限制,比如說通過where、limit方法來作一定的限制,或者你可以直接傳入要刪除數據的id,你可以查看下面的示例:

  1. //刪除id為3的數據 
  2.     $db->delete(3); 
  3.       
  4.     //刪除id>5的數據 
  5.     $db->where('id>5')->delete(); 
  6.       
  7.     //刪除從20起后的10條數據 
  8.     $db->where('id>5')->limit('20,10')->delete();  

更新數據

數據添加了,有時發現錯誤,就得高法來更改數據,update方法用來更新數據,update方法與insert方法類似,都接受一個數組參數,數組的鍵名為表的字段名,對應的鍵值為要插入的內容,下面的內容就是把id為29的數據更新為array中的數據,代碼如下:

  1. $db->where('id=29')->update(array('btitle'=>'www.49028c.com','content'=>'小天地,大世界是一個技術交流博客')); 
  2.   //更新id>35的所有數據 
  3.   $db->where('id>29')->update(array('btitle'=>'www.49028c.com','content'=>'小天地,大世界是一個技術交流博客'));  

查找數據

數據庫處理類中提供了select方法,可以很方便的進行數據的查找,結合著where、limit方法,就可以查找相應的數據,具體的使用方法請見下例:

  1. $db->select(); //查找所有數據 
  2.     
  3.   $db->where('id=0')->select(); //查找指定數據 
  4.     
  5.   $db->where('id>9')->select(); //查找id大于9的數據集合 
  6.     
  7.   $db->limit('10,9')->select(); //從查找數據第10條以后的9條數據 
  8.     
  9.   $db->where('id>50')->limit('10,9')->select();  

其它方法:除了以上幾種方法之外,數據庫處理類還提供了如下的方法.

order方法:主要是來更改查找數據排序方式

group方法:數組方法

find方法:查找單條記錄

sql方法:直接執行數據SQL語句,并返回處數據集

query方法:也可以執行數據SQL語句,但不返回數據集,而是返回受影響的記錄條數.

關于數據庫處理類,最后說明一點,此數據庫處理類是后盾網PHP視頻中所講,有助于像我這樣的新手來學習,故特地整理.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品天天狠天天看| 国产91在线播放九色快色| 日韩中文字幕在线| 97视频免费在线看| 97欧美精品一区二区三区| 国产精品欧美日韩| 亚洲欧美一区二区激情| 亚洲经典中文字幕| 国产免费久久av| 欧美国产极速在线| 国产精品扒开腿爽爽爽视频| 精品日韩视频在线观看| 91精品国产乱码久久久久久久久| 欧美激情在线播放| 国产精品免费福利| 成人国产精品久久久| 国产精品第10页| 国内精品400部情侣激情| 亚洲资源在线看| 色爱av美腿丝袜综合粉嫩av| 久久久久久久久久久亚洲| 亚洲欧洲日本专区| 国产亚洲欧洲高清一区| 亚洲人成网7777777国产| 黑人巨大精品欧美一区二区三区| 尤物九九久久国产精品的分类| 热99精品里视频精品| 91精品久久久久久久久不口人| 国产日韩欧美综合| 日韩视频在线观看免费| 91精品国产91久久久| 欧美午夜宅男影院在线观看| 日韩中文视频免费在线观看| 中文字幕精品—区二区| 一区二区三区在线播放欧美| 欧美在线视频网站| 4438全国亚洲精品在线观看视频| 亚洲欧洲一区二区三区久久| 欧美激情亚洲激情| 午夜伦理精品一区| 亚洲在线免费观看| 精品色蜜蜜精品视频在线观看| 国产成人一区二区三区小说| 97久久精品人人澡人人爽缅北| 国产精品电影久久久久电影网| 久久的精品视频| 欧美激情久久久久| 国产一区二区三区视频在线观看| 国产精品久久久久aaaa九色| 亚洲一区二区三区四区在线播放| 欧美黑人性生活视频| 日本亚洲精品在线观看| 国产精品福利无圣光在线一区| 国产亚洲a∨片在线观看| 91亚洲国产成人精品性色| 精品综合久久久久久97| 青草青草久热精品视频在线观看| 亚洲国产精品久久精品怡红院| 亚洲第一精品夜夜躁人人躁| 日韩人在线观看| 久久久久久999| 日韩欧美一区二区三区久久| 精品亚洲男同gayvideo网站| 亚洲欧美日韩精品久久亚洲区| 黄色一区二区三区| 中文字幕亚洲欧美在线| 国产91在线播放精品91| 久久97久久97精品免视看| 精品国内产的精品视频在线观看| 久久福利网址导航| 超碰91人人草人人干| 日韩在线视频中文字幕| 日韩av在线不卡| 日本韩国在线不卡| 亚洲精品国产综合区久久久久久久| 久久久久久久一| 久久久中文字幕| 91在线免费看网站| 精品国产91久久久久久| 亚洲国产精品va在看黑人| 国产一区二区三区在线播放免费观看| 日韩a**站在线观看| 91九色精品视频| 国产精品毛片a∨一区二区三区|国| 国产精品久久久久久婷婷天堂| 91久久综合亚洲鲁鲁五月天| 国产精品久久久久久久久借妻| 超薄丝袜一区二区| 98精品国产自产在线观看| 成人av在线天堂| 亚洲国产精久久久久久| 成人久久一区二区| 精品视频偷偷看在线观看| 欧美极品少妇xxxxⅹ免费视频| 国产精品第2页| 精品国内亚洲在观看18黄| 欧美日韩午夜视频在线观看| 日韩中文字幕在线播放| 8090成年在线看片午夜| 亚洲第一偷拍网| 中文字幕av一区二区三区谷原希美| 国产91色在线|| 亚洲一区精品电影| 成人精品久久一区二区三区| 亚洲精品之草原avav久久| 中文字幕欧美精品在线| 国产精品自产拍在线观看中文| 成人午夜两性视频| 国产精品黄视频| 久久精品电影一区二区| 亚洲女人天堂网| 精品福利视频导航| 欧美性猛交xxxx偷拍洗澡| 91精品在线观| 亚洲欧洲美洲在线综合| 亚洲第一精品福利| 久久综合伊人77777| 亚洲精品电影在线观看| 另类专区欧美制服同性| 欧美日韩午夜视频在线观看| 97国产在线视频| 亚洲天堂日韩电影| 欧美自拍视频在线观看| 国产亚洲一区二区在线| 一本色道久久综合亚洲精品小说| 伊人av综合网| 亚洲精品乱码久久久久久金桔影视| 一区二区亚洲精品国产| 国产91精品视频在线观看| 国产偷亚洲偷欧美偷精品| 久久人人爽人人| 欧美第一淫aaasss性| 91九色精品视频| 国产亚洲一区二区精品| 亚洲精品国产福利| 久久久久久久久久国产| 韩曰欧美视频免费观看| 亚洲天堂av高清| 欧美日韩在线免费观看| 久久国内精品一国内精品| 精品福利樱桃av导航| 久久资源免费视频| 亚洲夜晚福利在线观看| 一本大道久久加勒比香蕉| 亚洲国产欧美一区二区三区同亚洲| 日韩欧美在线免费| 久久九九精品99国产精品| 国产精品视频网| 国产视频福利一区| 国产欧美中文字幕| 精品偷拍各种wc美女嘘嘘| 欧美成人激情视频| 欧美日韩国产色| 久久天天躁狠狠躁老女人| 国产999视频| 久久免费少妇高潮久久精品99| 欧美日韩成人在线观看| 国内精久久久久久久久久人| 日韩中文字幕在线精品| 国产精品成人观看视频国产奇米| 一区二区三区视频免费在线观看| 国产一区二区三区直播精品电影| 欧美精品在线视频观看| 久久夜精品va视频免费观看|