php pdo 缓冲,PDO支持数据缓存_PHP教程
/**
* 作者:初十
* QQ:345610000
*/
class myPDO extends PDO
{
public $cache_Dir = null; //缓存目录
public $cache_expireTime = 7200; //缓存时间,默认两小时
//带缓存的查询
public function cquery($sql)
{
//缓存存放总目录
if ($this->cache_Dir == null || !is_dir($this->cache_Dir)) {
exit (“缓存目录有误!”);
} else {
$this->cache_Dir = str_replace(“”, “/”, $this->cache_Dir);
$FileName = trim($this->cache_Dir, “/”) . ‘/’ . urlencode(trim($sql)) . ‘.sql’;
}
//判断生成缓存
if (!file_exists($FileName) || time() – filemtime($FileName) > $this->cache_expireTime) {
if ($tmpRS = parent::query($sql)) {
$data = serialize($tmpRS->fetchAll());
self::createFile($FileName, $data);
} else {
exit (“SQL语法错误
“);
}
}
return $this->readCache($FileName);
}
//读缓存文件
private static function readCache($FilePath)
{
if (is_file($FilePath) && $Data = file_get_contents($FilePath)) {
return new cache_PDOStatement(unserialize($Data));
}
return false;
}
//生成文件
public static function createFile($FilePath, $Data = ”)
{
if (file_put_contents($FilePath, $Data)) {
return true;
} else {
return false;
}
}
}
//缓存用到Statement类
class cache_PDOStatement
{
private $recordArr = array();
private $cursorId = 0;
private $recordCount = 0;
public function __construct($arr)
{
$this->recordArr = $arr;
$this->recordCount = count($arr);
}
//返回一条记录,指针下移一行
public function fetch()
{
if ($this->cursorId == $this->recordCount) {
return false;
} else if ($this->cursorId == 0) {
$this->cursorId++;
return current($this->recordArr);
} else {
$this->cursorId++;
return next($this->recordArr);
}
}
//返回全部结果
public function fetchAll()
{
return $this->recordArr;
}
//单行单列查询
public function fetchColumn()
{
$tmpArr = current($this->recordArr);
return $tmpArr[0];
}
}
使用方法
$db = new myPDO(‘mysql: host = localhost;dbname=news’,’newsadmin’,’123456′);
$db->cache_Dir = “cache”; //设置缓存目录
$db->cache_expireTime = 7200; //设置缓存时间
$rs = $db->cquery(“select * from news limit 0,10”); //用缓存查询方法cquery代替query
while ($row = $rs->fetch()) {
echo $row[“F_title”] . “
“;
}
$rs = null;
$db = null;
www.bkjia.comtrueTechArticle/** * 作者:初十 * QQ:345610000 */ class myPDO extends PDO { public $cache_Dir = null; //缓存目录 public $cache_expireTime = 7200; //缓存时间,默认两小时 //带缓…
php pdo 缓冲,PDO支持数据缓存_PHP教程相关推荐
- Spring Boot 实践折腾记(12):支持数据缓存Cache
不管是什么类型的应用程序,都离不开数据,即便如现在的手机APP,我们依然需要使用数数据库,对于不懂的人,当然,我们可以告诉他们一些高大上的概念,但是作为专业人士,就一定要明白背后的真实原理到底是什么. ...
- Php的if自动转换类型,php之数据类型自动转换,php之数据类型转换_PHP教程
php之数据类型自动转换,php之数据类型转换 1:概述 ---php是一种弱类型的语言,它可以根据运行环境的变化而自动进行数据类型的转换 1.1转换成布尔类型的原则 以下值都将转换成布尔类型中的fa ...
- php管理varnish,php实现监控varnish缓存服务器的状态,php监控varnish缓存_PHP教程
php实现监控varnish缓存服务器的状态,php监控varnish缓存 当varnish和网站部署在同一台服务器上的时候,我们不可能随时登录上服务器去查看varnish的命中率,没想到有大神早就写 ...
- php缓存小偷,小偷PHP+Html+缓存_PHP教程
传奇服务器名".$regs[1].""; //把得到的内容的html补齐,自己发挥 }//END IF $clinch=str_replace(' ','你自己的广告', ...
- PHP访问关键字,php数据访问之查询关键字,php数据关键字_PHP教程
php数据访问之查询关键字,php数据关键字 本文实例为大家分享了php查询操作的实现代码,供大家参考,具体内容如下 一.一个关键字查询 主页面: 汽车查询页面 汽车查询页面请输入查询内容: 代号 汽 ...
- php pdo 封装类,php pdo封装类代码(支持事务)
/** * PDO数据库 * @copyright By GOOGLE */ class pdo_db { /** * PDO实例 * @var PDO */ protected $_db; /** ...
- mysql pdo 查询一条数据_pdo mysql怎么输出第1条 第4条 第7条数据
pdo mysql怎么输出第1条 第4条 第7条数据.. 下面是输出全部数据.. query($sql1); while($row = $rs -> fetch()) { echo' '.$ro ...
- mysql pdo 查询一条数据,使用 PDO 关联查询 MySQL 数据
使用pdo关联查询mysql数据 try { $pdo = new PDO('mysql:host=localhost;dbname=test;', 'root', '123456'); // 0.等 ...
- 分布式数据流计算系统的数据缓存技术综述
点击上方蓝字关注我们 分布式数据流计算系统的数据缓存技术综述 袁旭初, 付国, 毕继泽, 张岩峰, 聂铁铮, 谷峪, 鲍玉斌, 于戈 东北大学计算机科学与工程学院,辽宁 沈阳 110169 论文引用格 ...
最新文章
- 关于Spark NLP学习,你需要掌握的LightPipeline(附代码)| CSDN博文精选
- Redmine Feedback
- 深入浅出之-route命令实战使用指南
- Oracle 11g 安装后续——开发工具篇
- Python实训day03pm【列表生成式、非文本文件的读写与复制、文本文件读写练习】
- step5 . day2 网络编程 基于TPC协议的网络编程流程及API
- java01基础简介
- [笔记]java-package
- python守护线程
- -webkit-min-device-pixel-ratio的常见值对照
- matlab迭代xyz到blh,基于matlab的坐标转换精编.doc
- 红米骁龙855旗舰关键细节曝光:256G ROM+GPU超频模式
- java nio 连接数_Java NIO 基础一 NIO概念
- spark mysql 写_Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)...
- 使用Arduino实现一个简易倒车雷达
- 懒人必备神器 !一个创意十足的 Python 命令行工具
- CESIUM例子学习(一)——动态模型加载
- python实现从oracle读数据写入mysql(1)
- 乔布斯一个人的世界(一)
- 【工具】-10 UML时序图(Sequence Diagram)学习笔记
热门文章
- 数据挖掘的相关知识例子
- 我要认真学Git了 - Config
- [poj 1364]King[差分约束详解(续篇)][超级源点][SPFA][Bellman-Ford]
- Flexbox 最简单的表单
- 720 智能硬件与 LeanCloud 云端的默契协作
- Python中的defaultdict方法
- 批处理命令Start
- 【Data Cluster】真机环境下MySQL数据库集群搭建
- Seen.js – 使用 SVG 或者 Canvas 渲染 3D 场景
- Highlighting System