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