<?php
//====================================================================
//Access数据库操作类( Arc ) QQ:21269932
//DataTime 2008-2-20
//使用范例:
/*
//$databasepath="database.mdb";
//include_once("Access_Class.php");
//$ACS = new Access($databasepath);
//$sql='SELECT * FROM Arc_admin WHERE id = 5 ';
// $x=$ACS->query($sql);
// echo odbc_result($x,'admin');
*/
//====================================================================
class Access //Class Start
{
var $databasepath,$constr,$dbusername,$dbpassword,$link;
function Access($databasepath,$dbusername="",$dbpassword="")
{
$this->databasepath=$databasepath;
$this->username=$dbusername;
$this->password=$dbpassword;
$this->connect();
}
/*ACCESS数据库连接模块*/
function connect()
{
$this->constr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath($this->databasepath);
$this->link=odbc_connect($this->constr,$this->username,$this->password,SQL_CUR_USE_ODBC);
//if($this->link) echo "恭喜你,数据库连接成功!";
//else echo "数据库连接失败!";
return $this->link;
}
/*数据库基本操作模块*/
#---------------------------------------------------------
function query($sql) //---数据查询
{
$Q = @odbc_do($this->link,$sql);
if($Q) { return $Q;} else { return false;}
}
#---------------------------------------------------------
function fetch_row($query)
{ //返回一列
return odbc_fetch_row($query);
}
#---------------------------------------------------------
function total_num($query) //---取得记录总数
{
return odbc_num_rows($query);
}
#---------------------------------------------------------
function close()//关闭数据库连接函数
{
odbc_close($this->link);
}
#---------------------------------------------------------
/**
# 指定条数信息查询
* $sql 数据查询SQL语句
* $num 显示条数
* $start 开始查询位置
*/
function selectLimit($sql, $num, $start = 0)
{
$sql = SQL($sql);
//---sql语句整理 开始
$a = explode("SELECT",$sql);
$sql="";
if ($start == 0)
{
$sql ="SELECT TOP ".$num.$a[1];
}
else
{
$a = explode("FROM",$a[1]);;
$b = explode("ORDER",$a[1]);
$WHERE = trim($b[0]);
$name = "ID";
if($b[1]){
$c = explode(" ",trim($b[1]));
for($i=1;$i<count($c);$i++){
if(trim($c[$i])){ $name = trim($c[$i]);break;}
}
}
$PX = strstr($a[1], "ASC")? " ORDER BY ".$name." ASC" : " ORDER BY ".$name." DESC";
$c = explode("WHERE",$b[0]);
if(trim($c[1])) $c[1] = ' AND '.trim($c[1]);
$sql ="SELECT TOP ".$num." ".trim($a[0])." FROM ".trim($c[0])." WHERE ID NOT IN(SELECT TOP ".$start." ID FROM ".$WHERE.$PX.") ".trim($c[1]).$PX;
}
//---SQL语句整理 结束
$arr = array();
$res = $this->query($sql); //查询输出
while ($row = odbc_fetch_row($res))
{
for($i=1;$i<=odbc_num_fields($res);$i++){
$rows[odbc_field_name($res,$i)]=odbc_result($res, $i);
}
$arr[] = $rows;
}
if(!empty($arr)) return $arr;
return false;
}
#---------------------------------------------------------
/**
# 取得条件的记录列表
* $table 表名
* $field 要获取的字段 * 或 a,b,c
* $condition WHERE 条件
*/
function getList($table,$field,$where = "") //---取得记录列表
{
/*
$field 字段名,多个“,”间隔
$condition 获取条件
返回数组数组 a[序列][字段名] 或 true ,错误返回 flase
*/
$where = (!empty($where)) ? " WHERE ".$where : "";
$sql="SELECT ".$field." FROM ".$table.$where;
$query=$this->query($sql);
if(!$query) return false;
$arr = $rows = array();
while ($this->fetch_row($query))
{
for($i=1;$i<=odbc_num_fields($query);$i++){
$rows[odbc_field_name($query,$i)]=odbc_result($query,$i);
}
$arr[] = $rows;
}
if(!empty($arr)) return $arr; else return true;
}
#-------------------------------------------------------
/**
# 删除指定条件的记录
* $table 表名
* $where WHERE 条件
*
*/
function delNote($table,$where = '')
{ if($where=="") return false;
$sql="DELETE FROM ".$table." WHERE ".$where;
if( $this->query($sql));return true;
return false;
}
#---------------------------------------------------------
/**
# 追加/更新 数据
* $fieArr["字段名"]="内容";
* $mode : INSERT / UPDATE
*/
function autoExecute($table, $fieArr, $mode = 'INSERT', $where = '')
{
$sql="";
$keys = $mess = array();
if(!is_array($fieArr)) return false;
if ($mode == 'INSERT'){
//---数据追加
foreach($fieArr AS $key=>$Txt){
$keys[] = trim($key); $mess[] = "'".trim($Txt)."'";
}
if(!empty($keys))
$sql="INSERT INTO ".$table." (".implode(",",$keys).") VALUES (".implode(",",$mess).")";
}else{
//---数据更新
if($where=="") return false;
foreach($fieArr AS $key=>$Txt){
$keys[] = trim($key) . " = '".trim($Txt)."'";
}
if(!empty($keys))
$sql="UPDATE ".$table." SET ".implode(',',$keys)." WHERE ".$where;
}
if($sql){ if ($this->query($sql)) return true; else return false; } else return false;
}
#---------------------------------------------------------
/**
# SQl语句转换-将关键词转换为大写
* $s 要转换的代码
*/
function SQL($s) { //转换SQL
$s=str_replace("select ","SELECT ",$s);
$s=str_replace(" from "," FROM ",$s);
$s=str_replace(" where "," WHERE ",$s);
$s=str_replace(" and "," AND ",$s);
$s=str_replace(" order "," ORDER ",$s);
$s=str_replace(" by "," BY ",$s);
$s=str_replace(" desc"," DESC",$s);
$s=str_replace(" asc"," ASC",$s);
$s=str_replace(" top "," TOP ",$s);
return $s;
}
#-----------------------------------------------------------
}//Class Over
?>
没有合适的资源?快使用搜索试试~ 我知道了~
php ACCESS 操作类 (未修正)看说明
共1个文件
php:1个
需积分: 0 15 下载量 112 浏览量
2008-10-31
18:00:11
上传
评论
收藏 2KB RAR 举报
温馨提示
本人刚刚改造的ACCESS类! 有兴趣大家可以自行改造! 这个版本有点问题,请下载以下链接的修正版本! http://download.csdn.net/source/821632
资源详情
资源评论
资源推荐
收起资源包目录
Access_Class.rar (1个子文件)
Access_Class.php 7KB
共 1 条
- 1
TonyCodes
- 粉丝: 1
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0