回 帖 发 新 帖 刷新版面

主题:[原创]php面象对象数据库操作类

<?php
//*******************************************************************
//此处构造一个数据库操作类,封装所有数据库操作
//可以扩展便于后台管理程序的使用
Class MySQLDB 

   var $host; 
   var $user; 
   var $passwd; 
   var $database;
   var $conn; 

   //利用构造函数实现变量初始化 
   //同时连接数据库操作
   function MySQLDB($host,$user,$password,$database) 
   { 
      $this->host = $host; 
      $this->user = $user; 
      $this->passwd = $password; 
      $this->database = $database; 
      $this->conn=mysql_connect($this->host, $this->user,$this->passwd) or 
     die("Could not connect to $this->host"); 
      mysql_select_db($this->database,$this->conn) or 
     die("Could not switch to database $this->database"); 
   } 

   //该函数用来关闭数据库连接
   function Close() 
   { 
      MySQL_close($this->conn); 
   } 

   //该函数实现数据库查询操作
   function Query($queryStr) 
   { 
      $res =Mysql_query($queryStr, $this->conn) or 
      die("Could not query database"); 
      return $res; 
   } 

   //该函数返回记录集
   function getRows($res) 
   { 
      $rowno = 0; 
      $rowno = MySQL_num_rows($res); 
      if($rowno>0) 
      { 
         for($row=0;$row<$rowno;$row++ ) 
         { 
            $rows[$row]=MySQL_fetch_array($res);
            //本来为MySQL_fetch_row,但是不能以数组的方式来提取,只能用索引
            //这样可以用索引和名称,更为方便
         } 
         return $rows; 
      } 
    } 

    //该函数取回数据库记录数
    function getRowsNum($res) 
    { 
       $rowno = 0; 
       $rowno = mysql_num_rows($res); 
       return $rowno;
    } 

 //该函数返回数据库表字段数
 function getFieldsNum($res)
 {
    $fieldno = 0;
    $fieldno = mysql_num_fields($res);
    return $fieldno;
 }

 //该函数返回数据库表字段名称集
 function getFields($res)
 {
      $fno = $this->getFieldsNum($res);
      if($fno>0) 
      { 
         for($i=0;$i<$fno;$i++ ) 
         { 
            $fs[$i]=MySQL_field_name($res,$i);//取第i个字段的名称
         } 
         return $fs;
      } 
 }




使用时直接require该文件,然后实例化:

$SqlDB = new MySQLDB("localhost","root","root","testdb");

$sql = "select * from tableX...";

$result = $SqlDB->Query($sql);//查询

$rs = $SqlDB->getRows($result);//获得记录集

$num = $SqlDB->getRowsNum($result);//获得记录数

...剩下的操作就是循环取值,

for($i=0;$i<$num;$i++){
   echo($rs[$i]["字段名"]);
}

...

最后不要忘记关闭数据路连接哦$SqlDB->Close();当然这句可以不要,php会自动注销!但是这样能够养成一个好的习惯,最好还是加上!

...其他自己类推...不懂的可以提问!

本帖最先由longlong16发表于[url=http://www.xz-show.cn/bbs/ShowPost.asp?ThreadID=1084]http://www.xz-show.cn/bbs/ShowPost.asp?ThreadID=1084形之秀在线论坛[/url]

回复列表 (共8个回复)

沙发


  推荐给Web程序员
 
  [url=http://www.888RMB.com.cn] www.888RMB.COM.CN[/url] 为中国赚钱网站。 提供网络赚钱教程、络赚赚钱经验、络赚赚钱秘籍、络赚赚钱项目、络赚赚钱产品, 为想赚钱的人群提供一个赚钱的网络平台!

板凳

路过 支持~~

3 楼

這種方法還可以

4 楼

不错

5 楼

不错学习,真是经典啊 www.yonkerking.cn

6 楼

多谢了 [url=http://www.yonkerking.cn]电子商务[/url],这个就是用这种方法做的,非常好

7 楼

php4的
php5对oop的支持要比Php4好得多,像这种数据库操作类使用Interface会更好。

8 楼

不错,不错

我来回复

您尚未登录,请登录后再回复。点此登录或注册