Apr
28
2016
php access 数据库类
<?php
if (! defined ( 'APPINC' ))
exit ( "Request Error!" );
/**
* 数据库类
* 说明:系统底层Access数据库核心类
*/
/**
*
* Db_Access数据库类
*
*/
class Db_Access{
var $dataPath;
var $constr;
var $dbusername;
var $dbpassword;
var $link;
var $results;
var $result;
var $QueryString;
function __construct($dataPath,$dbusername,$dbpassword) {
$this->Db_Access($dataPath,$dbusername,$dbpassword);
}
function Db_Access($dataPath,$dbusername,$dbpassword){
$this->dataPath=$dataPath;
$this->username=$dbusername;
$this->password=$dbpassword;
$this->Connect();
}
function Connect(){
$this->constr='DRIVER={Microsoft Access Driver (*.mdb)};DBQ='.realpath($this->dataPath).';';
$this->link=odbc_connect($this->constr,$this->username,$this->password,SQL_CUR_USE_ODBC);
if(!$this->link) die ("数据库连接失败!");
return $this->link;
}
//设置SQL语句,会自动把SQL语句里的#@__替换为$this->dbPrefix(在配置文件中为$cfg_dbprefix)
function SetQuery($sql) {
$GLOBALS['last_sql']=$sql;
$this->queryString = $sql;
}
//Query 直接运行SQL,可用于更新、删除数据
function Query($sql){
return @odbc_exec($this->link,$sql);
}
//执行一个带返回结果的SQL语句,如SELECT,SHOW等
function Execute($sql="",$id = "this"){
if (! empty ( $sql )) {
$this->SetQuery ( $sql );
}
$this->result = odbc_exec($this->link,$this->queryString);
$this->results [$id] = &$this->result;
}
//执行一个不返回结果的SQL语句,如update,delete,insert等
function ExecNoneQuery($sql){
$this->Execute($sql);
return $this->result;
}
// 执行带返回结果的sql 返回影响到的行的数目
function ExecNoneQuerys($sql){
$this->Execute($sql);
return @odbc_num_rows($this->result);
}
//执行一个SQL语句,返回前一条记录或仅返回一条记录
function GetOne($sql) {
$this->Execute($sql);
return odbc_fetch_array($this->result);
}
//取得当前指针处记录
function GetArray($id = "this"){
if ($this->results [$id] == 0) {
return FALSE;
} else {
return @odbc_fetch_array( $this->results [$id]);
}
}
//关闭数据库连接函数
function close(){
odbc_close($this->link);
}
}
/*
$dataPath='./data.mdb';
$dbusername='';
$dbpassword='';
$access=new Db_Access($dataPath,$dbusername,$dbpassword);
$sql="SELECT TOP 1 * FROM `huifang`;";
//获取单条信息
$row=$access->GetOne($sql);
var_dump($row);
//循环遍历数据
$access->Execute ($sql);
while ($row=$access->GetArray()){
var_dump($row);
}
//执行一个不返回结果的SQL语句,如update,delete,insert等
$access->ExecNoneQuery("INSERT INTO `huifang` (`nrid`,`hfsj`) VALUES ('55791','2016-04-25 17:21:20');");
//执行带返回结果的sql
var_dump($access->ExecNoneQuerys("INSERT INTO `huifang` (`nrid`,`hfsj`) VALUES ('55791','2016-04-25 17:21:20');"));
*/
?>
微信扫一扫,打赏作者吧~
最活跃的读者