php+Memcached实现简单留言板功能示例
作者:水晶依恋 发布时间:2023-11-15 09:30:02
标签: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程序设计有所帮助。


猜你喜欢
- 我就废话不多说了,直接上代码吧!#方法一def list_cut(mylist,count): length=len(mylis
- 无论你在linux上娱乐还是工作,这对你而言都是一个使用python来编程的很好的机会。回到大学我希望他们教我的是Python而不是Java
- MySQLWorkbench是 MySQL AB 最近释放的可视数据库设计工具。这个工具是设计 MySQL数据库的专用工具。下载地址:htt
- 1,ConfigParser模块简介假设有如下配置文件,需要在Pyhton程序中读取$ cat config.ini[db]db_port
- 目录一、IPO模型 二、基本输入 - input()函数1、函数格式2、参数说明3、实例演示(1)接收字符串数据(2)接收整型数据
- API的应用通常会处理json数据,刚好今天看到了json字符串和python字符串的区别,放一段代码,区别一下子就看出来,的确json 库
- 本文实例讲述了python实现备份目录的方法。分享给大家供大家参考。具体如下:备份脚本1:#!/usr/bin/python# Filena
- 一、Excel环境配置 服务器端的环境配置从参考资料上看,微软系列的配置应该都行,即:1.Win9x+PWS+Office2.Wi
- 在写一些很小的机器学习项目的时候,我们往往希望training, testing和inference能共用一个入口main,但是不同的功能使
- Python矩阵的基本用法mat()函数将目标数据的类型转化成矩阵(matrix)1,mat()函数和array()函数的区别Numpy函数
- 本文为大家分享了使用navicat将csv文件导入mysql的具体代码,供大家参考,具体内容如下1.打开navicat,连接到数据库并找到自
- 01 ReplicaSet的架构 前面的文章中,我们说了ReplicaSet的基本概念和限制以及部署前的基本知识。
- 首先:确认自己安装有python(没有安装的同学可自行安装,这里我们不过多赘述)确认安装有python之后,win+r打开cmd窗口,输入p
- 加密解密字符串的asp函数,如用于ASP链接地址栏参数的加密,看代码就明白。比如:show.asp?id=DB26538FA54C70E1E
- 如下所示:nums = [1,8,2,23,7,-4,18,23,24,37,2]result = map(nums.index, heap
- 变量的缓存机制变量的缓存机制(以下内容仅对python3.6.x版本负责)机制只要有两个值相同,就只开辟一个空间为什么要有这样的机制在计算机
- 1.优化你的MySQL查询缓存 在MySQL服务器上进行查询,可以启用高速查询缓存。让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一。
- 这是一个非常简单的解决方案,柱状图中每一条柱都是一个 div,数据的大小呈现在 div 的宽或高上。 查看演示 例子下载实现的原理
- 需提前安装好pyzbar和opencv-python库(博主的电脑安装opencv-python库比较麻烦,但大部分都不会出现该问题)安装方
- 命令模式(Command Pattern)是什么命令模式是一种行为型模式,它将请求封装成一个对象,从而允许您将不同的请求排队或记录请求日志、