您的位置:首页 > 编程语言 > PHP开发

php连接access的类

2009-11-01 16:50 246 查看
<?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) . '] ';
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();
}
}
?>

使用方法

<?

类名: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
0
(请您对文章做出评价)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: