国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

PHP教程之PHP連接ACCESS數(shù)據(jù)庫的類

2024-05-04 21:52:40
字體:
供稿:網(wǎng)友

  試過PHP連接ACCESS數(shù)據(jù)庫沒?這個用途不大,但有時候也用得著!我以前試圖將一個ASP程序改寫成PHP的,原程序的數(shù)據(jù)庫設(shè)計得比較完善,我打算開發(fā)時就用它的ACCESS數(shù)據(jù)庫 ,等程序完成后再轉(zhuǎn)換。這個程序改寫計劃最終擱淺了,但此過程中為了方便連接ACCESS數(shù)據(jù)庫,我寫了個PHP連接ACCESS數(shù)據(jù)庫的類,比較方便,希望有人用得著!

 ***本類只能在win平臺的服務(wù)器上使用
*/
class access{
function access(dir){ //構(gòu)析函數(shù),調(diào)用.com建立數(shù)據(jù)源,鏈接數(shù)據(jù)庫;參數(shù)為數(shù)據(jù)庫文件路徑
this->db=new com("adodb.connection");
this->db->open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=".realpath(dir));
}
function sql(sql){//參數(shù)為SQL查詢語句
if(preg_match("/limit +([0-9]*),([0-9]*)/",sql,out)){//正則分析sql語句,提取limit參數(shù),模擬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){//非查詢語句直接返回空值,防止錯誤提示出現(xiàn)
return "";
}
if(limit1==""){
limit1=0;
}
if(limit2==""){//如果沒有l(wèi)imit參數(shù),設(shè)limit2為總記錄數(shù)
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=""){//此函數(shù)用于將關(guān)聯(lián)數(shù)組各元素處理成相關(guān)變量,第二個參數(shù)為變量名前綴,防止重名
foreach(db as key=>dba){
global {p.key};
{p.key}=dba;
}
}
function yasuo(dir){//壓縮數(shù)據(jù)庫函數(shù),本函數(shù)用access::yasuo(dir);調(diào)用,dir為數(shù)據(jù)庫文件路徑,調(diào)用次函數(shù)之前必須將所有當前數(shù)據(jù)庫的連接中斷!
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");//數(shù)據(jù)庫所在目錄必須有讀寫權(quán)限,否則會導(dǎo)致失敗!
unlink(truedir);
rename(dirname."/aatmp.mdb",truedir);
}
function add(file){//新建一個ACCESS數(shù)據(jù)庫 參數(shù)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");//創(chuàng)建數(shù)據(jù)庫
db=new access("my.mdb");//連接數(shù)據(jù)庫
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);//插入數(shù)據(jù)
db->sql("insert into `a` (`name`) values('靠');");
sql="select * from a limit 1,1";
rs=db->sql(sql);//查詢
print_r(rs);
?>
 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安顺市| 楚雄市| 九江县| 石柱| 迁西县| 松原市| 道真| 铜陵市| 宁晋县| 通化市| 出国| 贵港市| 雅江县| 乌兰浩特市| 五河县| 安陆市| 蕉岭县| 公主岭市| 双流县| 山东省| 化州市| 云龙县| 榕江县| 菏泽市| 额济纳旗| 萨迦县| 长沙县| 池州市| 涿鹿县| 曲麻莱县| 盐源县| 麦盖提县| 平湖市| 阳西县| 定兴县| 阿坝县| 资源县| 浦城县| 广饶县| 南涧| 东兴市|