gpt4 book ai didi

php写的带缓存数据功能的mysqli类

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php写的带缓存数据功能的mysqli类由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

代码如下

<?php  /**  * Mysqli类  */  class db_mysqli {  protected $mysqli;  protected $sql;  protected $rs;  protected $query_num = 0;  protected $fetch_mode = MYSQLI_ASSOC;  protected $cache_dir = './cache/';  protected $cache_time = 1800;  public function __construct($dbhost, $dbuser, $dbpass, $dbname) {  $this->mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);  if(mysqli_connect_errno()) {  $this->mysqli = false;  echo '<h2>'.mysqli_connect_error().'</h2>';  die();  } else {  $this->mysqli->set_charset("utf8");  }  }  public function __destruct() {  $this->free();  $this->close();  }  protected function free() {  @$this->rs->free();  }  protected function close() {  $this->mysqli->close();  }  protected function fetch() {  return $this->rs->fetch_array($this->fetch_mode);  }  protected function getQuerySql($sql, $limit = null) {  if (@preg_match("/[0-9]+(,[ ]?[0-9]+)?/is", $limit) && !preg_match("/ LIMIT [0-9]+(,[ ]?[0-9]+)?$/is", $sql)) {  $sql .= " LIMIT " . $limit;  }  return $sql;  }  protected function get_cache($sql,$method) {  include_once './cache.php';//若框架中使用__autoload(),这里可以不用加载文件  $cache = new cache($this->cache_dir,$this->cache_time);  $cache_file = md5($sql.$method);  $res = $cache->get_cache($cache_file);  if(!$res) {  $res = $this->$method($sql);  $cache->set_cache($cache_file, $res);  }  return $res;  }  public function query_num() {  return $this->query_num;  }  public function set_cache_dir($cache_dir) {  $this->cache_dir = $cache_dir;  }  public function set_cache_time($cache_time) {  $this->cache_time = $cache_time;  }  public function query($sql, $limit = null) {  $sql = $this->getQuerySql($sql, $limit);  $this->sql = $sql;  $this->rs = $this->mysqli->query($sql);  if (!$this->rs) {  echo "<h2>".$this->mysqli->error."</h2>";  die();  } else {  $this->query_num++;  return $this->rs;  }  }  public function getOne($sql) {  $this->query($sql, 1);  $this->fetch_mode = MYSQLI_NUM;  $row = $this->fetch();  $this->free();  return $row[0];  }  public function get_one($sql) {  return $this->getOne($sql);  }  public function cache_one($sql) {  $sql = $this->getQuerySql($sql, 1);  return $this->get_cache($sql, 'getOne');  }  public function getRow($sql, $fetch_mode = MYSQLI_ASSOC) {  $this->query($sql, 1);  $this->fetch_mode = $fetch_mode;  $row = $this->fetch();  $this->free();  return $row;  }  public function get_row($sql, $fetch_mode = MYSQLI_ASSOC) {  return $this->getRow($sql);  }  public function cache_row($sql) {  $sql = $this->getQuerySql($sql, 1);  return $this->get_cache($sql, 'getRow');  }  public function getAll($sql, $limit = null, $fetch_mode = MYSQLI_ASSOC) {  $this->query($sql, $limit);  $all_rows = array();  $this->fetch_mode = $fetch_mode;  while($rows = $this->fetch()) {  $all_rows[] = $rows;  }  $this->free();  return $all_rows;  }  public function get_all($sql, $limit = null, $fetch_mode = MYSQLI_ASSOC) {  return $this->getAll($sql);  }  public function cache_all($sql, $limit = null) {  $sql = $this->getQuerySql($sql, $limit);  return $this->get_cache($sql, 'getAll');  }  public function insert_id() {  return $this->mysqli->insert_id();  }  public function escape($str) {  if(is_array($str)) {  foreach($str as $key=>$val) {  $str[$key] = $this->escape($val);  }  } else {  $str = addslashes(trim($str));  }  return $str;  }  }  //用法  $db = new db_mysqli('localhost', 'root', 111222, 'dict');  $db->set_cache_time(10);  $db->set_cache_dir('./cache/sql/');  $sql = "select * from words order by word_id limit 10,10";  $res1 = $db->get_all($sql);  $res2 = $db->cache_all($sql);  echo $db->query_num(),'<br>';  ?>  。

最后此篇关于php写的带缓存数据功能的mysqli类的文章就讲到这里了,如果你想了解更多关于php写的带缓存数据功能的mysqli类的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com