1. 程式人生 > >php使用memcache連線資料庫展示資料

php使用memcache連線資料庫展示資料

<?php
header("Content-type:text/html;charset=utf-8");
/**
* 用於執行所有結果集的sql語句,並將結果集快取到memcached伺服器中
* @param string $sql 有結果集的查詢語句SQL
*  @param object $memcache Memcache類的物件
* @return $date 返回結果集的資料
*/
function select($sql,Memcache $memcache){
/* md5 sql命令 作為memcache的唯一識別符號*/
$sql = "select * from jy_city";
$key=md5($sql);
/* 先從memcached伺服器總獲取資料 */
$data=$memcache->get($key);
/* 如果沒有資料就要從資料庫中獲取*/
if(!$data){
try{
$pdo=new PDO("mysql:host=127.0.0.1;dbname=shop10","root","");
}catch(PDOException $e){
die("連線失敗:".$e->getMessage());
}
$pdo->query("set names utf8"); //防止亂碼
$stmt=$pdo->prepare($sql);
$stmt->execute();
$data=$stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($data); //測試
$memcache->add($key,$data,MEMCACHE_COMPRESSED,0);
}
return $data;
}
$mem=new Memcache;
$mem->connect("localhost","11211");
$data=select("select * from book",$mem);
//echo "<pre>";
print_r($data);
?>