找回密码
 注册
搜索
热搜: 回贴

PHP连接ACCESS数据库

2010-1-31 08:06| 发布者: admin| 查看: 61| 评论: 0|原作者: 琴姬

/*
* 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() . '
' . $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 .= "" . $this->siteCode[6] . " ";
$this->pageViewText .= "" . $this->siteCode[7] . " ";
}
else {
$this->pageViewText .= $this->siteCode[6] . " ";
$this->pageViewText .= $this->siteCode[7] . " ";;
}
if($this->pageCode < ceil($j / $this->pageSize)){
$this->pageViewText .= "" . $this->siteCode[8] . " ";
$this->pageViewText .= "" . $this->siteCode[9] . "";
}
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 "\n";
for($i = 0 ; $i < count($db->bodyAry) ; $i ++){ //注意这里,$db->bodyAry是一个二维数组,行 -> 列
echo "\n";
for($j = 0 ; $j < count($db->bodyAry[$i]) ; $j ++){
echo "\n";
}
echo "\n";
}
if($db->pageView == true){
echo "\n\n\n
" . $db->bodyAry[$i][$j] . "
";
echo $db->pageViewText; //这里是DB类返回的分页字符
echo "
";
}

//echo $db->showMessage; //返回提示内容,调试时可开启
?>

最新评论

相关分类

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 19:29 , Processed in 0.264002 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部