您的位置:首页网页设计PHP技巧 → PHP连接ACCESS数据库的类

PHP连接ACCESS数据库的类

时间:2010/2/4 17:05:00来源:本站整理作者:我要评论(0)

PHP连接ACCESS数据库的类:

  试过PHP连接ACCESS数据库没?这个用途不大,但有时候也用得着!我以前试图将一个ASP程序改写成PHP的,原程序的数据库设计得比较完善,我打算开发时就用它的ACCESS数据库 ,等程序完成后再转换。这个程序改写计划最终搁浅了,但此过程中为了方便连接ACCESS数据库,我写了个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");
}
}
?>

不知道怎么用吧!下面有示例!

<?
include("access.php");
access::add("my.mdb");//创建数据库
db=new access("my.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 a limit 1,1";
rs=db->sql(sql);//查询
print_r(rs);
?>

相关视频

    没有数据

相关阅读 php输出内容乱码解决方法php批量获取首字母(汉字、数字、英文)我的php文件怎么打开_如何打开php文件的办法破解防盗链图片的php函数php显示错误信息方法如何在IIS7下设置支持PHP程序PHP技巧--通过COM使用ADODB成就PHP高手的五个必经之路

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 如何恢复Discuz!7.0被 CSS实现Tab技巧Linux配置DHCP服务器实例:linux配置教程如何在IIS7下设置支持PHP程序PHP技巧--通过COM使用ADODB

人气排行 dedecms数据库表和字段说明最小化数据传输——在客户端存储数据php如何自动跳转中英文页面如何在IIS7下设置支持PHP程序php批量获取首字母(汉字、数字、英文)经典php实现大文件上传源代码Windows环境PHP的session不能正常使用解决办PHP聊天室技术