Home > php教程 > php手册 > body text

采用PEAR来缓冲PHP程序二

WBOY
Release: 2016-06-13 10:28:36
Original
760 people have browsed it

最后,我们来定制一个应用,综合的来解释 PEAR 缓冲机制的整体框架。 我们定义一个叫做 MySQL_Query_Cache 的类,缓冲 SELECT 的查询结果。 我们首先定义类的变量: ’.’, ’filename_prefix’ => ’cache_’), $expires = 3600) { $this->Cache($container, $container_options); $this->expires = $expires; } function _MySQL_Query_Cache() { if (is_resource($this->connection)) { mysql_close($this->connection); } $this->_Cache(); } } ?> 在正式开始之前,我们需要一些辅助函数。 function connect($hostname, $username, $password, $database) { $this->connection = mysql_connect($hostname, $username, $password) or trigger_error(’数据库连接失败!’, E_USER_ERROR); mysql_select_db($database, $this->connection) or trigger_error(’数据库选择失败!’, E_USER_ERROR); } function fetch_row() { if ($this->cursor result)) { return $this->result[$this->cursor++]; } else { return false; } } function num_rows() { return sizeof($this->result); } ?> 下面我们来看怎样缓冲: result = $this->get($cache_id, ’mysql_query_cache’); if ($this->result == NULL) { // 缓冲丢失 $this->cursor = 0; $this->result = array(); if (is_resource($this->connection)) { // 尽可能采用 mysql_unbuffered_query() if (function_exists(’mysql_unbuffered_query’)) {$result = mysql_unbuffered_query($query, $this->connection); } else {$result = mysql_query($query, $this->connection); } // 取出所有查询结果 while ($row = mysql_fetch_assoc($result)) {$this->result[] = $row; } // 释放 MySQL 结果资源 mysql_free_result($result); // 把结果缓冲 $this->save($cache_id, $this->result, $this->expires, ’mysql_query_cache’); } } } else { // 没有查询结果,不需要缓冲 return mysql_query($query, $this->connection); } } ?> 例 3: 使用 MySQL 查询缓冲 connect(’hostname’, ’username’, ’password’, ’database’); $cache->query(’select * from table’); while ($row = $cache->fetch_row()) { echo ’


’; print_r($row); echo ’
’; } ?>
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!