当前位置:Gxlcms > 数据库问题 > 用PHP去实现数据库查询结果缓存

用PHP去实现数据库查询结果缓存

时间:2021-07-01 10:21:17 帮助过:38人阅读

//第一步连接数据库 $conn = mysqli_connect("localhost","root","","bbs"); //第二步设置相应的字符编码 $setting = ‘set names utf8‘; mysqli_query($conn,$setting); //第三步进行查询 $sql = ‘SELECT * FROM user‘; $result = mysqli_query($conn,$sql); //第四步把查询结果转化为一个数组 $rows = mysqli_num_rows($result); $sqldata = array(); for($i = 0;$i <$rows;$i ++){ $sqldata[] = mysqli_fetch_assoc($result); } //第五步把结果写到缓存文件 $file = "sqlcache.txt"; $msg = serialize($sqldata); $fp = fopen($file,"w"); fputs($fp,$msg); fclose($fp);

然后我们可以打开这个sqlcache.txt文件,它的内容如下:

a:6:{i:0;a:4:{s:2:"id";s:1:"1";s:5:"level";s:1:"0";s:4:"name";s:6:"辛星";s:3:"pwd";s:32:"bd04fcc97578ce33ca5fb331f42bc375";}i:1;a:4:{s:2:"id";s:1:"2";s:5:"level";s:1:"1";s:4:"name";s:6:"小倩";s:3:"pwd";s:32:"61cb72858be523b9926ecc3d7da5d0c6";}i:2;a:4:{s:2:"id";s:1:"3";s:5:"level";s:1:"1";s:4:"name";s:6:"小楠";s:3:"pwd";s:32:"a3d2de7675556553a5f08e4c88d2c228";}i:3;a:4:{s:2:"id";s:1:"4";s:5:"level";s:1:"1";s:4:"name";s:6:"刘强";s:3:"pwd";s:32:"fcdb06a72af0516502e5fdccc9181ee0";}i:4;a:4:{s:2:"id";s:1:"5";s:5:"level";s:1:"1";s:4:"name";s:6:"星哥";s:3:"pwd";s:32:"866a6cafcf74ab3c2612a85626f1c706";}i:5;a:4:{s:2:"id";s:1:"6";s:5:"level";s:1:"1";s:4:"name";s:6:"辛勇";s:3:"pwd";s:32:"e93beb7663f3320eaa0157730d02dd0c";}}

然后我们可以写一个程序从该文件中读取数据,PHP代码如下:

<!--?php
$file = "sqlcache.txt";
$msg = file_get_contents($file);
$result = unserialize($msg);
var_dump($result);
</pre--><p></p>
<p>这样我们的$result就是从本地的txt文件中读取的数据,而不是从数据库中读取的数据了,即我们模拟了缓存的使用。</p>
<p><br>
</p>
<p>说明:</p>
<p>1.我们通过filemtime来得到文件的创建时间,可以用time来得到现在的时间,通过比较这个差值来决定是否要更新缓存。</p>
<p>2.我们可以用unlink来强制的删除文件以清空数据缓存</p>
<p><br>
</p>
<p><br>
</p>
<br>
<p><br>
</p>         

 

用PHP去实现数据库查询结果缓存

标签:contents   http   实现原理   执行   targe   puts   eve   字符编码   code   

人气教程排行