2216609207 发表于 2015-8-28 08:48:59

php连接Access类

  <?php
/*
* Created on 2008-10-25
*
* developer by Alex.do QQ:20779512
* PHP 5.0
*/
   class mdbClass {
    var $dbPath = 'database/#123123#.mdb';    //数据库路径
    var $tabName;            //表名
    var $aryChar;            //写入、查询操作时为列的集合,更新操作时为更新具体内容
    var $aryText;            //写入操作时为值的集合,更新、删除、查询操作时为更新的条件,批量请赋予1=1
    var $showMessage;      //操作返回的提示
    var $pageCode = 1;      //当前页,程序默认为1
    var $pageSize = 10;      //每页显示记录数,程序默认为10
    var $pageUrl = '?';      //分页时传入的其它保留参数
    var $pageViewText;      //输出分页字符串
    var $pageView = false;      //是否显示分页,默认为不显示
    var $bodyAry = Array();      //返回查询的数据
    var $siteCode = Array(      //返回提示的文字,目的:多语言
      0 => '数据库连接成功!',
      1 => '数据库连接失败!',
      2 => '数据写入成功!',
      3 => '数据更新成功!',
      4 => '数据删除成功!',
      5 => '数据查询失败!',
      6 => '首页',
      7 => '上一页',
      8 => '下一页',
      9 => '尾页'
    );
      //数据库连接
    function conn(){
      try {
            $this->conn = new com("ADODB.Connection");
            $this->conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath($this->dbPath));
            $this->showMessage = $this->siteCode;
      }
      catch(Exception $e){
            $this->showMessage = $e->getMessage() . '<br />' . $this->siteCode;
      }
    }
      //数据库关闭
    function conn_close(){
      $this->conn->close();
    }
      //写入数据
    function setData(){
      $this->conn();
      $this->conn->execute("insert into $this->tabName ($this->aryChar) values($this->aryText)");
      $this->showMessage = $this->siteCode;
      $this->conn_close();
    }
      //更新数据
    function upData(){
      $this->conn();
      $this->conn->execute("update $this->tabName set $this->aryChar where $this->aryText");
      $this->showMessage = $this->siteCode;
      $this->conn_close();
    }
      //删除数据
    function delData(){
      $this->conn();
      $this->conn->execute("delete from $this->tabName where $this->aryText");
      $this->showMessage = $this->siteCode;
      $this->conn_close();
    }
      //查询数据
    function getData(){
      $this->conn();
      $rs = $this->conn->execute("select $this->aryChar from $this->tabName where $this->aryText");
      if(!$rs->Eof){
            $j = 0;
            $k = 0;
            if(!preg_match("/^\d+$/" , $this->pageCode)){
                $this->pageCode = 1;
            }
            while(!$rs->Eof){
                $j ++;
               //把记录写进当前需要显示的二维数组中
                if(($j > ($this->pageCode - 1) * $this->pageSize) && ($j <= $this->pageCode * $this->pageSize)){
                  for($i = 0 ; $i < $rs->Fields->count ; $i ++){
                        $this->bodyAry[$k][$i] = $rs->Fields[$i]->value;
                  }
                  $k ++;
                }
                $rs->movenext();
            }
            //分页
            if($this->pageView == true){
                $this->pageViewText = '[' . $j . '][' . $this->pageCode . '/' . ceil($j / $this->pageSize) . ']&nbsp;';
                if($j > $this->pageSize){
                  if($this->pageCode > 1){
                        $this->pageViewText .= "<a href='" . $this->pageUrl . "page=1'>" . $this->siteCode . "</a>&nbsp;";
                        $this->pageViewText .= "<a href='" . $this->pageUrl . "page=" . ($this->pageCode - 1) . "'>" . $this->siteCode . "</a>&nbsp;";
                  }
                  else {
                        $this->pageViewText .= $this->siteCode . "&nbsp;";
                        $this->pageViewText .= $this->siteCode . "&nbsp;";;
                  }
                  if($this->pageCode < ceil($j / $this->pageSize)){
                        $this->pageViewText .= "<a href='" . $this->pageUrl . "page=" . ($this->pageCode + 1) . "'>" . $this->siteCode . "</a>&nbsp;";
                        $this->pageViewText .= "<a href='" . $this->pageUrl . "page=" . ceil($j / $this->pageSize) . "'>" . $this->siteCode . "</a>";
                  }
                  else {
                        $this->pageViewText .= $this->siteCode . "&nbsp;";
                        $this->pageViewText .= $this->siteCode;
                  }
                }
            }
      }
      else {
            $this->showMessage = $this->siteCode;
            exit();
      }
      $rs->close();
      $this->conn_close();
    }
}
?>

  
  
  使用方法
  <?
  类名:mdbClass;
    作用:操作access的DB类;
    作者:biyuan(6010707);
    使用方法及范例:
      $db = new mdbClass();    //实例
      $db->tabName = "gbook";    //指定要操作的表名

      //数据写入操作
      $db->aryChar = "g_name , g_mail , g_oicq , g_tel , g_img , g_body";
      $db->aryText = "'admin' , 'xxxx@163.com' , 6010707 , '15994275xxx' , '/face/1.gif' , '测试数据'";
      $db->setData();

      //数据更新操作
      $db->aryChar = "g_name = 'scriptcn' , g_tel = '13800138xxx'";
      $db->aryText = "1 = 1";      //条件;赋予1=1表示批量操作
      $db->upData();

      //数据删除操作
      $db->aryText = "id = 4";
      $db->delData();

      //数据查询操作
      $db->aryChar = "id , g_name , g_mail , g_oicq , g_time , g_body";    //可使用“*”全部查询
      $db->aryText = "1 = 1 order by id";    //条件1 = 1表示查询所有记录
      $db->pageView = true;            //是否分页
      $db->pageSize = 10;            //指定每页记录数
      $db->pageUrl = "?id=1&";      //传入其它保留参数
      $db->pageCode = $_GET['page'];      //获取当前页序号
      $db->getData();
      echo "<table border='1'>\n";
      for($i = 0 ; $i < count($db->bodyAry) ; $i ++){    //注意这里,$db->bodyAry是一个二维数组,行 -> 列
            echo "<tr>\n";
            for($j = 0 ; $j < count($db->bodyAry[$i]) ; $j ++){
                echo "<td>" . $db->bodyAry[$i][$j] . "</td>\n";
            }
            echo "</tr>\n";
      }
      if($db->pageView == true){
            echo "<tr>\n<td colspan='7'>";
            echo $db->pageViewText;      //这里是DB类返回的分页字符
            echo "</td>\n</tr>\n</table>";
      }

      //echo $db->showMessage;    //返回提示内容,调试时可开启
  ?>
页: [1]
查看完整版本: php连接Access类