jacking
级别: 论坛版主
UID: 2
精华: 2
发帖: 295
威望: 309 点
金钱: 2990 RMB
贡献值: 0 点
注册时间:2007-05-17
最后登录:2008-12-31
楼主  发表于: 2007-12-06 08:47

 php实现操作access数据的的方法与程序代码

问题刚刚提出:请问用php+ access, 怎么给access数据库增加删除一个记录呀?
============================================================================
以下是解答方法与程序代码:

<?
/*===========================================================================================================================

    类名: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;    //返回提示内容,调试时可开启

===========================================================================================================================
*/
class mdbClass
{
    var
$dbPath = 'gbook.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][] = $rs->Fields[$i]->value
;
                    }
                   
$k
++;
                }
               
$rs->movenext
();
            }
           
//分页
           
if($this->pageView == true
){
               
$this->pageViewText = '[' . $j . '][' . $this->pageCode . '/' . ceil($j / $this->pageSize) . '] '
;
                if(
$j > $this->pageSize
){
                    if(
$this->pageCode > 1
){
                       
$this->pageViewText .= "<a href='" . $this->pageUrl . "page=1'>" . $this->siteCode[6] . "</a> "
;
                       
$this->pageViewText .= "<a href='" . $this->pageUrl . "page=" . ($this->pageCode - 1) . "'>" . $this->siteCode[7] . "</a> "
;
                    }
                    else {
                       
$this->pageViewText .= $this->siteCode[6] . " "
;
                       
$this->pageViewText .= $this->siteCode[7] . " "
;;
                    }
                    if(
$this->pageCode < ceil($j / $this->pageSize
)){
                       
$this->pageViewText .= "<a href='" . $this->pageUrl . "page=" . ($this->pageCode + 1) . "'>" . $this->siteCode[8] . "</a> "
;
                       
$this->pageViewText .= "<a href='" . $this->pageUrl . "page=" . ceil($j / $this->pageSize) . "'>" . $this->siteCode[9] . "</a>"
;
                    }
                    else {
                       
$this->pageViewText .= $this->siteCode[8] . " "
;
                       
$this->pageViewText .= $this->siteCode[9
];
                    }
                }
            }
        }
        else {
           
$this->showMessage = $this->siteCode[5
];
            exit();
        }
       
$rs->close
();
       
$this->conn_close
();
    }
}
?>
ps设计
级别: 论坛版主
UID: 363
精华: 1
发帖: 242
威望: 245 点
金钱: 2440 RMB
贡献值: 0 点
注册时间:2007-07-21
最后登录:2008-12-11
1楼  发表于: 2007-12-07 13:01
帖子不错~ 学习
  若是我的话~直接换mysql 呵呵!