怎样全局缓存access

 我来答
栾岚岚98
2016-01-10 · TA获得超过460个赞
知道小有建树答主
回答量:475
采纳率:73%
帮助的人:70.7万
展开全部
全局缓存access代码:<?php
class access
{
/**
* 声明存储查询结果ID的数组,数据库连接ID,存储分页信息的数组,缓存数据读取偏移量
*/
public $resultId, $linkId, $pageMsg, $offset;
/**
* 声明显示错误消息的页面地址
*/
public $errPage = '';
/**
* 声明数据库路径,此路径需为绝对路径
*/
public $dbPath = '';

/**
* 缓存存储路径
*/
public $cachePath = '';

/**
* 缓存声明周期,设为0则不适用缓存
*/
public $cacheLifeTime = 3600;

/**
* 当使用分页查询时,最多缓存多少页
*/
public $cacheLimitMax = 100;

/**
* 建立数据库连接
*
* 说明:
* 此数据库类无构造函数,在声明新类之后,需手动运行此函数
*/
public function connect()
{
$dsn = 'DRIVER={Microsoft Access Driver (*.mdb)}; DBQ='.$this->dbPath;
$this->linkId = odbc_connect($dsn,'','',SQL_CUR_USE_ODBC);
$this->linkId || $this->setError('Connect database defeat!');
}

/**
* 执行一条SQL语句
*
* 参数:
* $sql 要执行的SQL语句
* $resultId 查询结果的ID,当执行一条不需返回的SQL语句,如删除,更新等时,该参数可省略
*/
public function query($sql ,$resultId = '__id__')
{
$this->resultId[$resultId] = odbc_exec($this->linkId,$sql);
$this->resultId[$resultId] || $this->setError('Carries out the SQL defeat!');
}

/**
* 从查询结果集中读取一条记录,并返回为数组
*
* 参数:
* $resultId 查询结果的ID
*/
public function record($resultId)
{
if (is_array($this->resultId[$resultId]))
{
$offset = $this->offset[$resultId]; $this->offset[$resultId]++;
return $this->resultId[$resultId][$offset];
}
return odbc_fetch_array($this->resultId[$resultId]);
}

/**
* 从查询结果集中读取一条记录,并注册为类的属性,属性名为字段名
*
* 参数:
* $resultId 查询结果ID
*/
public function recordObj($resultId)
{
if (is_array($this->resultId[$resultId]))
{
$rowArray = $this->resultId[$resultId][$this->offset[$resultId]];
$this->offset[$resultId]++;
} else {
$rowArray = $this->record($resultId);
}
for (reset($rowArray);$key = key($rowArray);next($rowArray)) $this->$key = $rowArray[$key];
}

/**
* 获取一个查询结果集的记录数
*
* 参数:
* $resultId 查询结果ID
*/
public function rowsNum($resultId)
{
return odbc_num_rows($this->resultId[$resultId]);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式