- <?
- /*===========================================================================================================================
- 类名: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();
- }
- }
- ?>