php access类,一个简洁的PHP操作Access类

/*

FileName:cls_access.php

Summary: Access数据库操作类

*************************************

使用范例:

========================

$databasepath='D:/wwwroot/cef/www/class/testdb.mdb';

//或者$databasepath='testdb.mdb';

$dbusername='';

$dbpassword='';

require_once('cls_access.php');

$access=new Access($databasepath,$dbusername,$dbpassword);

print_r($access->getlist("SELECT TOP 5 * FROM `Result` WHERE `ResultNo` < 12 ORDER BY `ResultNo` DESC"));

echo $access->num_rows("update `conner` set `connerip` = '222.35.142.101' where `connerno` < 83");

========================

*/

class Access{

var $databasepath,$constr,$dbusername,$dbpassword,$link;

function Access($databasepath,$dbusername,$dbpassword){

$this->databasepath=$databasepath;

$this->username=$dbusername;

$this->password=$dbpassword;

$this->connect();

}

function connect(){

$this->constr='DRIVER={Microsoft Access Driver (*.mdb)};DBQ='.realpath($this->databasepath).';';

$this->link=odbc_connect($this->constr,$this->username,$this->password,SQL_CUR_USE_ODBC);

if(!$this->link) echo "数据库连接失败!";

return $this->link;

}

function query($sql){ //直接运行SQL,可用于更新、删除数据

return @odbc_exec($this->link,$sql);

}

function fetch_array($query){ //取得当前指针处记录

return odbc_fetch_array($query);

}

function fetch_row($query){ //基本同fetch_array(),但只有数字索引

return odbc_fetch_row($query);

}

function num_rows($sql){ //返回SQL查询影响到的行的数目

return odbc_num_rows($this->query($sql));

}

function close(){ //关闭数据库连接函数

odbc_close($this->link);

}

function getlist($sql){ //取得记录列表

$query=$this->query($sql);

$recordlist=array();

while ($row=$this->fetch_array($query)){

$recordlist[]=$row;

}

return $recordlist;

}

}

这个类用的是ODBC,并不想网上说的要用ODBC数据源。我直接新建一个*.mdb文件就可以使用。

再附上部分常用COM方式操作Access代码:

$db = $_SERVER['DOCUMENT_ROOT'].'/zhuanti/ugdkfjlsg54356k6546jk654gfslkg6544s.mdb';

$conn = new COM('ADODB.Connection') or die('can not start Active X Data Objects');

$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");

JS调用页js.php

include_once('conn.php');

$rs = $conn->Execute("SELECT TOP 3 * FROM userstar where chk = 1 ORDER BY id DESC");

$idgb=1;

while(!$rs->EOF){

$gbinf[$idgb]['id'] = $rs->Fields['id']->Value;

$gbinf[$idgb]['usname'] = $rs->Fields['usname']->Value;

$gbinf[$idgb]['usage'] = $rs->Fields['usage']->Value;

$gbinf[$idgb]['usprovince'] = $rs->Fields['usprovince']->Value;

$gbinf[$idgb]['usfile'] = $rs->Fields['usfile']->Value;

$gbinf[$idgb]['thumb'] = $rs->Fields['thumb']->Value;

$gbinf[$idgb]['usmessage'] = $rs->Fields['usmessage']->Value;

$rs->MoveNext();

$idgb++;

}

$rs->Close();

$rs = null;

$uhtml='';

$uhtml.='

for ($i=1; $i<4; $i++){

$uhtml.='

';

if ($gbinf[$i]['usfile']){

$uhtml.=''.%24gbinf%5B%24i%5D%5B'thumb'%5D.'
'.$gbinf[$i]['usprovince'].' '.$gbinf[$i]['usname'];

if ($gbinf[$i]['usage'] != 0){

$uhtml.=' ('.$gbinf[$i]['usage'].'岁)
';

}

$uhtml.='

';

}

$uhtml.='

';

}

$uhtml.='

';

echo "document.write('".$uhtml."')";

又一段代码例子,以本文件路径确定数据库路径:

/*

===========================

数据库连接配置

*/

$db = getcwd().'\images\90d\90dicr_os6546oftff_ic543e_cces_4535s.mdb';

$conn = new COM('ADODB.Connection') or die('can not start Active X Data Objects');

$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");

/*

===========================

*/

//print_r($_POST);

if ($_POST['name'] && $_POST['tel'] && $_POST['addr'] && $_POST['email'] && $_POST['goal'] && $_POST['high'] && $_POST['weight'] && $_POST['message'])

{

$addsql = "INSERT INTO d90usr (`name`, `tel`, `addr`, `email`, `goal`, `high`, `weight`, `message`) VALUES ('".$_POST['name']."', '".$_POST['tel']."', '".$_POST['addr']."', '".$_POST['email']."', '".$_POST['goal']."', '".$_POST['high']."', '".$_POST['weight']."', '".strip_tags($_POST['message'])."')";

//echo '


'.$addsql;

$rsadd = $conn->Execute($addsql);

echo '';

echo '

恭喜您报名成功,请等待工作人员与您联系!

';

echo '

返回活动首页  返回商城首页

';

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值