现在的位置: 首页 > 综合 > 正文

php连接access的类

2014年01月12日 ⁄ 综合 ⁄ 共 5535字 ⁄ 字号 评论关闭

<?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[0];
        }
        catch(Exception $e){
            $this->showMessage = $e->getMessage() . '<br />' . $this->siteCode[1];
        }
    }

    //数据库关闭
    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[2];
        $this->conn_close();
    }

    //更新数据
    function upData(){
        $this->conn();
        $this->conn->execute("update $this->tabName set $this->aryChar where $this->aryText");
        $this->showMessage = $this->siteCode[3];
        $this->conn_close();
    }

    //删除数据
    function delData(){
        $this->conn();
        $this->conn->execute("delete from $this->tabName where $this->aryText");
        $this->showMessage = $this->siteCode[4];
        $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[6] . "</a>&nbsp;";
                        $this->pageViewText .= "<a href='" . $this->pageUrl . "page=" . ($this->pageCode - 1) . "'>" . $this->siteCode[7] . "</a>&nbsp;";
                    }
                    else {
                        $this->pageViewText .= $this->siteCode[6] . "&nbsp;";
                        $this->pageViewText .= $this->siteCode[7] . "&nbsp;";;
                    }
                    if($this->pageCode < ceil($j / $this->pageSize)){
                        $this->pageViewText .= "<a href='" . $this->pageUrl . "page=" . ($this->pageCode + 1) . "'>" . $this->siteCode[8] . "</a>&nbsp;";
                        $this->pageViewText .= "<a href='" . $this->pageUrl . "page=" . ceil($j / $this->pageSize) . "'>" . $this->siteCode[9] . "</a>";
                    }
                    else {
                        $this->pageViewText .= $this->siteCode[8] . "&nbsp;";
                        $this->pageViewText .= $this->siteCode[9];
                    }
                }
            }
        }
        else {
            $this->showMessage = $this->siteCode[5];
            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;    //返回提示内容,调试时可开启

?>

0
0

(请您对文章做出评价)

抱歉!评论已关闭.