PHP单例模式数据库连接类和页面静态实现方法
本文描述了PHP单例模式数据库连接类和页面的静态实现方法。分享给大家参考,如下:
数据库测试中数据表的内容
单一模式中的数据库连接类
db.php
?Php//singleton pattern的数据库连接类DB {//存储实例的静态成员变量static public $ _ instance//数据库连接静态变量static public $ _ connectSource//连接到数据库配置。自从几天前学习了PDO之后,我就使用了PDOPrivate $ _ dbconfig=array(‘host’=‘localhost’,‘user’=‘root’,‘password’=’,‘database’=‘test’)。//禁止private function _ _ construct(){ }//实例化公共静态函数getinstance(){ if(self :3360 $ _ instance of self){ return self 33603360 $ _ instance;} self : $ _ instance=new self();返回self: $ _ instance}//数据库连接公共函数connect() {//如果没有数据库连接,则创建一个if(!self : $ _ connect source){ try { $ DSN=' MySQL : host='。$this-_dbConfig['host']。dbname='。$this-_dbConfig['数据库'];$ username=$ this-_ DBconfig[' user '];$ password=$ this-_ DBconfig[' password '];self : $ _ connectSource=new PDO($ DSN,$username,$ password);} catch(PDOException $ e){ echo $ e-Getmessage();} } return self : $ _ connect source;}}?用PHP实现页面静态的一个例子
其实原理很简单,这里用了几个函数,比如ob_start(),ob_get_contents(),file_put_contents(),ob_start(),意思是打开缓冲区,ob_get_contents(),file_put_contents(),意思是获取缓冲区内容如果不懂缓冲区的含义,可以自己百度一下。我对缓冲区的理解是,当我们想要在PHP中输出一些数据时,我们会先经过缓冲区,我们可以从缓冲区中获取这些内容。因此,实现纯静态页面的方法是获取缓冲区中的内容并将其放入静态文件中,并根据门户中的要求设置是访问动态文件还是静态文件。这种方法通常用于数据不经常变化的动态页面。让我们具体实现这个函数。
static.php
?Php//1。用刚刚编写的数据库连接类连接数据库。//2.将获得的数据填入模板文件。//3.将页面转换为静态文件。//如果我们在本地有这个静态文件,并且这个文件的生成时间不到5分钟,那么访问这个静态文件。Filemtime()用于获取文件的最后修改时间,如果(is _ file('。/static . shtml ')(time()-file mtime('。/static . shtml '))300){//这里很简单。直接带来静态文件并要求_ once('。/static) }else {//如果这个静态文件不存在,或者这个静态文件的最后一次修改时间现在已经超过5分钟,那么访问动态获取数据的模板,然后更新static.shtml文件的内容//连接到数据库头(' content-type : text/html;charset=utf-8 ');require_once('。/db . PHP ');$ connect=db :3360 getinstance()-connect();//执行查询操作$sql='从帐户中选择* ';$ RES=$ connect-query($ SQL);//打开缓冲区ob _ start();//ob_get_clean()可以获取缓冲区的内容并清空它。我将测试require _ once('。/static _ show.php ')的ob_get_clean()和ob_get_contents()的。//将缓冲区的内容写入静态文件file _ put _ contents('。/static.shtml ',ob _ get _ contents());}?动态显示模板文件static_show.php
?PHP foreach($ RES as $ row){ echo ' name:'。$row['name']。br/';Echo的钱包:“。$row['money']'br/';echo ' HR/';}?当我们访问static.php的时候,因为没有static.shtml,我们会先执行else操作,在static_show.php中显示出来,生成static.shtml文件。
如果我这个时候换数据库,zjp的钱换成800,那么我访问static.php的时候会显示什么样的内容呢?是的,zjp的钱包还是600。为什么呢?因为它执行IF中的内容,直接显示static.shtml,所以我们可以看看static.shtml是什么样子的:
如果你五分钟后再去staitc.php,会显示什么?没错。zjp的钱包变成800,static.shtml的内容会更新到800。
测试ob_get_clean()和ob_get_contents()
测试方法很简单:
?php$test='Hello World!';//打开缓冲区ob _ start();//test ob _ get _ contents()echo $ test;echo ob _ get _ contents();//输出结果:你好世界!你好世界!//test ob _ get _ clean()echo $ test;echo ob _ get _ clean();//输出结果:你好世界!echo $测试;ob _ get _ clean();//输出结果:可以清楚地看到,当我们使用ob_get_clean()时,输出语句不会输出任何值,因为ob_get_clean()会获取缓冲区的内容并清空缓冲区。因此,当我们进行echo测试时,我们不会得到测试值,但是echo ob_get_clean()可以得到该值。当我们使用ob_get_contents()时,缓冲区中的内容不会被清空。
实际上,ob_get_clean()函数相当于执行ob_get_contents()和ob_end_clean()。
更多对PHP相关内容感兴趣的读者可以查看本网站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》、《php常见数据库操作技巧汇总》、0103010
希望本文对PHP编程有所帮助。
版权声明:PHP单例模式数据库连接类和页面静态实现方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。