php连接access

某人写的类

<?
/*
    作者:夜无眠
    QQ:27262681

    ***本类只能在win平台的服务器上使用
*/
class access{
    function access($dir){ //构析函数,调用.com建立数据源,链接数据库;参数为数据库文件路径
        $this->db=new com("adodb.connection"); 
        $this->db->open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=".realpath($dir));
    }
    function sql($sql){//参数为SQL查询语句
        if(preg_match("/limit +([0-9]*),([0-9]*)/",$sql,$out)){//正则分析sql语句,提取limit参数,模拟MYSQL的分页
            $limit1=$out[1];
            $limit2=$out[2];
            $sql=preg_replace("/limit +([0-9]*),([0-9]*)/","",$sql);
        }
        $rs=$this->db->execute($sql);
        if(strpos($sql,"select")===false or strpos($sql,"select")>5){//非查询语句直接返回空值,防止错误提示出现
            return "";
        }
        if($limit1==""){
            $limit1=0;
        }
        if($limit2==""){//如果没有limit参数,设$limit2为总记录数
            $limit2=1000000;
        }
        $rs->move($limit1);//记录指针移动到第$limit1条记录处
        $i=0;
        while(!$rs->eof and $i<$limit2){
            foreach($rs->fields as $rss){
                $rs_r[$rss->name]=$rss->value;
            }
            $rs_rr[]=$rs_r;
            $rs->move(1);
            $i++;
        }
        return $rs_rr;
    }
    function getlist($db,$p=""){//此函数用于将关联数组各元素处理成相关变量,第二个参数为变量名前缀,防止重名
        foreach($db as $key=>$dba){
            global ${$p.$key};
            ${$p.$key}=$dba;
        }
    }
    function yasuo($dir){//压缩数据库函数,本函数用access::yasuo($dir);调用,$dir为数据库文件路径,调用次函数之前必须将所有当前数据库的连接中断!
        $ya =new com("JRO.JetEngine");
        $truedir=realpath($dir);
        $dirname=dirname($truedir);
        $prov="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
        $ya->CompactDatabase($prov.$truedir,$prov.$dirname."/aatmp.mdb");//数据库所在目录必须有读写权限,否则会导致失败!
        unlink($truedir);
        rename($dirname."/aatmp.mdb",$truedir);
    }
    function add($file){//新建一个ACCESS数据库 参数$file为文件路径,必须为相对路径
        $dir=dirname($_SERVER["SCRIPT_FILENAME"])."/".$file;
        $db=new com("ADOX.Catalog"); 
        $db->Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=$dir");
    }
}
?>

 

 

 

<?php
//使用方法
include("access.class.php");
//access::add("my.mdb");//创建数据库
$db=new access("mybD.mdb");//连接数据库

$sql=<<<eot
CREATE   TABLE   a   (    
id   AUTOINCREMENT(1,1),    
name   varchar(10))
eot;
$db->sql($sql);//建表
$sql=<<<eot
insert into `a` (`name`) values('wo ri');
eot;
$db->sql($sql);//插入数据
$db->sql("insert into `a` (`name`) values('靠');");

$sql="select * from show";
$rs=$db->sql($sql);//查询

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值