这里有新鲜出炉的PHP设计模式,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于web开发领域。PHP的文件后缀名为php。
这篇文章主要介绍了php+Memcached实现简单留言板功能,结合实例形式较为详细的分析了php结合memcached实现留言板的具体步骤与相关操作技巧,需要的朋友可以参考下
本文实例讲述了php+Memcached实现简单留言板功能。分享给大家供大家参考,具体如下:
MyPdo.php
- <?php
- class MyPdo{
- private $pdo;
- function __construct()
- {
- $this->pdo = $this->getPdo();
- }
- /**
- * CreatePDO
- *
- * @return PDO
- */
- public function getPdo()
- {
- $dbms='mysql';
- $dbName='testdb';
- $user='root';
- $pwd='diligentyang';
- $host='localhost';
- $dsn="$dbms:host=$host;dbname=$dbName";
- try{
- $pdo=new PDO($dsn,$user,$pwd);
- }catch(Exception $e){
- echo $e->getMessage().'<br>';
- exit();
- }
- $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
- $pdo->exec("set names utf8");
- return $pdo;
- }
- /**
- * Execute SQL
- *
- * @param string $sql Sql
- * @param string $mode Mode
- *
- * @return mixed
- */
- function query($sql = "", $mode = "array")
- {
- $sql = trim($sql);
- if ($sql == "") {
- $this->showErrors("the mothe query neet at least one param!");
- }
- $query = $this->pdo->query($sql);
- if (!$query) {
- $this->showErrors("the sql string is false");
- }
- if (strpos(strtolower($sql), "select") ===false) {
- return $query;
- }
- switch ($mode) {
- case 'array' :
- $res = $query->fetchAll(PDO::FETCH_ASSOC);
- break;
- case 'object' :
- $res = $query->fetchObject();
- break;
- case 'count':
- $res = $query->rowCount();
- break;
- default:
- $this->showErrors("SQLERROR: please check your second param!");
- }
- return $res;
- }
- /**
- * 提示错误
- *
- * @param string $str 错误提示内容
- */
- public function showErrors($str)
- {
- echo "<h1>$str<h1/>";
- exit();
- }
- }
ShowMessage.php
- <?php
- include("MyPdo.php");
- //连接Memcached服务器
- $m = new Memcached();
- $m->addServer('127.0.0.1',11211);
- //获取Memcached中的list
- $res = $m->get("list");
- //如果没有数据,则从数据库中查出,并放入Memcached中,如果有数据则直接输出
- if(!$res){
- $MyPdo = new MyPdo();
- $res = $MyPdo->query("select * from message","array");
- $m->set('list',$res,3600);
- }
- foreach($res as $val){
- echo $val['title']."-------".$val['content']."<br>";
- }
- ?>
- <a href="AddMessage.php" rel="external nofollow" >添加留言</a>
AddMessage.php
- <form action="CheckAdd.php" method="post">
- 标题:<input type="text" name="title"><br>
- 内容:<input type="text" name="content"><br>
- <input type="submit" value="提交">
- </form>
CheckAdd.php
- <?php
- include("MyPdo.php");
- //连接Memcached服务器
- $m = new Memcached();
- $m->addServer('127.0.0.1',11211);
- $title = $_POST['title'];
- $content = $_POST['content'];
- $MyPdo = new MyPdo();
- $res = $MyPdo->query("insert into message(title,content) values('$title','$content')");
- if($res){//如果insert语句执行成功则清除Memcache中的缓存
- $m->delete("list");
- }
- header("location:ShowMessage.php");
运行结果如下所示:
注:此例子只是简单实现了,留言列表和添加留言功能,需要注意的是,如果对数据库的数据有了添加或修改,需要清除缓存,然后重新缓存一下,已保证数据显示同步。
希望本文所述对大家PHP程序设计有所帮助。
来源: http://www.phperz.com/article/17/0902/340553.html