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

 更新时间:2017年02月15日 08:54:45   作者:水晶依恋  
这篇文章主要介绍了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相关内容感兴趣的读者可查看本站专题:《PHP+MySQL留言板开发专题》、《php缓存技术总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP错误与异常处理方法总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

相关文章

  • PHP实现的进度条效果详解

    PHP实现的进度条效果详解

    这篇文章主要介绍了PHP实现的进度条效果,结合实例形式分析了PHP结合JavaScript动态显示百分比进度条功能,涉及PHP缓存、数学运算及JavaScript页面元素动态操作相关技巧,需要的朋友可以参考下
    2016-05-05
  • php判断两个浮点数是否相等的方法

    php判断两个浮点数是否相等的方法

    这篇文章主要介绍了php判断两个浮点数是否相等的方法,涉及php操作浮点数的技巧,比较实用,需要的朋友可以参考下
    2015-03-03
  • php中ftp_chdir与ftp_cdup函数用法

    php中ftp_chdir与ftp_cdup函数用法

    这篇文章主要介绍了php中ftp_chdir与ftp_cdup函数用法,以实例形式讲述了PHP中的FTP目录操作技巧,具有一定的借鉴价值,需要的朋友可以参考下
    2014-11-11
  • php 获取SWF动画截图示例代码

    php 获取SWF动画截图示例代码

    这篇文章主要介绍了php获取SWF动画截图的方法,需要的朋友可以参考下
    2014-02-02
  • PHP中JSON的应用技巧

    PHP中JSON的应用技巧

    这篇文章主要介绍了关于JSON以及JSON在PHP中的应用技巧,需要的朋友可以过来参考下,希望对大家有所帮助。
    2015-10-10
  • PHP中构造函数和析构函数解析

    PHP中构造函数和析构函数解析

    这篇文章主要介绍了PHP中构造函数和析构函数解析,本文用代码实例讲解了PHP中构造函数和析构函数,需要的朋友可以参考下
    2014-10-10
  • Discuz 6.0+ 批量注册用户名

    Discuz 6.0+ 批量注册用户名

    Discuz 6.0+ 批量注册用户名 此方法适合于手动采集用户名,自动注册用户名,这样做的好处是比较逼真!
    2009-09-09
  • php动态生成缩略图并输出显示的方法

    php动态生成缩略图并输出显示的方法

    这篇文章主要介绍了php动态生成缩略图并输出显示的方法,涉及php操作图片的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • php比较两个字符串长度的方法

    php比较两个字符串长度的方法

    这篇文章主要介绍了php比较两个字符串长度的方法,涉及php中strlen与abs函数计算字符串与数学运算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 脚本安全的本质_PHP+MYSQL

    脚本安全的本质_PHP+MYSQL

    从代码级别上,也就是应用层次上考虑代码安全的话(也就是不考虑底层的语言本身等问题的漏洞),脚本安全问题就是函数和变量的问题。
    2008-10-10

最新评论