php+Memcached实现简单留言板功能示例


Posted in PHP onFebruary 15, 2017

本文实例讲述了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+Memcached实现简单留言板功能示例

php+Memcached实现简单留言板功能示例

注:此例子只是简单实现了,留言列表和添加留言功能,需要注意的是,如果对数据库的数据有了添加或修改,需要清除缓存,然后重新缓存一下,已保证数据显示同步。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
网页游戏开发入门教程二(游戏模式+系统)
Nov 02 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
浅谈php serialize()与unserialize()的用法
Jun 05 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
Jul 08 PHP
apache中为php 设置虚拟目录
Dec 17 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
php商品对比功能代码分享
Sep 24 PHP
PHP编写简单的App接口
Aug 28 PHP
laravel5.4生成验证码的实例讲解
Aug 05 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
php格式文件打开的四种方法
Feb 24 PHP
RSA实现JS前端加密与PHP后端解密功能示例
Aug 05 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 #PHP
PHP中Trait及其应用详解
Feb 14 #PHP
php数组指针操作详解
Feb 14 #PHP
PHP中include()与require()的区别说明
Feb 14 #PHP
php中的抽象方法和抽象类
Feb 14 #PHP
PHP静态成员变量和非静态成员变量详解
Feb 14 #PHP
PHP静态成员变量
Feb 14 #PHP
You might like
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
javascript测试题练习代码
2012/10/10 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
python实现爬取千万淘宝商品的方法
2015/06/30 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
Python urllib.request对象案例解析
2020/05/11 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
美国知名生活购物网站:Goop
2017/11/03 全球购物
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
医药专业推荐信
2013/11/15 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
化妆品店促销方案
2014/02/24 职场文书
社区党建工作方案
2014/06/10 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
2014年银行柜员工作总结
2014/11/12 职场文书
通知的格式范文
2015/04/27 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
php实例化对象的实例方法
2021/11/17 PHP