Home  >  Article  >  Backend Development  >  PHP class sharing for operating access database

PHP class sharing for operating access database

WBOY
WBOYOriginal
2016-07-25 08:57:29971browse
本文介绍下,php操作access数据库的一个类,有需要的朋友参考下。

代码如下:

<?php
/*
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代码:

<?php
$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

<?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.='<table border="0" align="center"><tr>';

for ($i=1; $i<4; $i++){
    $uhtml.='<td width="240" align="center">';
    if ($gbinf[$i]['usfile']){
        $uhtml.='<img  src="/'.$gbinf[$i]['thumb'].'" / alt="PHP class sharing for operating access database" ><br 
 />'.$gbinf[$i]['usprovince'].' '.$gbinf[$i]['usname'];
        if ($gbinf[$i]['usage'] != 0){
            $uhtml.=' ('.$gbinf[$i]['usage'].'岁)<br />';
        }
       $uhtml.='<div style="width:180px; height:40px; overflow:hidden; text-align:left">'.$gbinf[$i]['usmessage'].'</div>';
    }
    $uhtml.='</td>';
}
$uhtml.='</tr></table>';
echo "document.write('".$uhtml."')";
?>

另一个例子,以本文件路径确定数据库路径:

<?php
/*
数据库连接配置
*/
$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 '<hr />'.$addsql;
$rsadd = $conn->Execute($addsql);
echo '';
echo '<p align="center"><h1>恭喜您报名成功,请等待工作人员与您联系!</h1></p>';
echo '<p align="center">返回活动首页  返回商城首页</p>';
}
?>


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn