欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

采用PEAR来缓冲PHP程序二_PHP教程

程序员文章站 2024-01-15 10:38:46
...
最后,我们来定制一个应用,综合的来解释 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 ’
’; } ?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/531729.htmlTechArticle最后,我们来定制一个应用,综合的来解释 PEAR 缓冲机制的整体框架。 我们定义一个叫做 MySQL_Query_Cache 的类,缓冲 SELECT 的查询结果。 我...