php连接程序,php连接access程序代码

/*

***本类只能在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

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");

}

}

?>

//使用方法

include("access.class.php");

//access::add("my.mdb");//创建数据库

$db=new access("mybD.mdb");//连接数据库

$sql=<<

CREATE TABLE a (

id AUTOINCREMENT(1,1),

name varchar(10))

eot;

$db->sql($sql);//建表

$sql=<<

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、付费专栏及课程。

余额充值