快速业务通道

通过缓存数据库结果提高PHP性能

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
r_error(''Query failed:'' . $err[''message'']);
return false;
  }
$results = oci_fetch_assoc($rsStatement);
return $results;
}
?>

“清单 5”是 getOrderItems.php 脚本。该脚本包含 getOrderItems 函数,该函数接受订单 ID 并返回一个二维数组,该数组包含表示订单的订单项的行。

清单 5. 获取指定订单的订单项

<?php
//File:getOrderItems.php
require_once ''connect.php'';
function getOrderItems($order_no) {
if (!$rsConnection = GetConnection()){
return false;
  }
$strSQL = "SELECT * FROM ORDER_ITEMS WHERE
order_id =:order_no ORDER BY line_item_id";
$rsStatement = oci_parse($rsConnection,$strSQL);
oci_bind_by_name($rsStatement, ":order_no", $order_no, 12);
if (!oci_execute($rsStatement)) {
$err = oci_error();
trigger_error(''Query failed:'' . $err[''message'']);
return false;
  }
$nrows = oci_fetch_all($rsStatement, $results);
return array ($nrows, $results);
}
?>

注意,以上两个函数都需要 connect.php 脚本,该脚本应包含返回数据库连接的 GetConnection 函数。清单 6 就是 connect.php 脚本:

清单 6. 获取数据库连接

<?php
//File:connect.php
function GetConnection() {
$dbHost = "dbserverhost";
$dbHostPort="1521";
$dbServiceName = "orclR2";
$usr = "oe";
$pswd = "oe";
$dbConnStr = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=".$dbHost.")
(PORT=".$dbHostPort."))(CONNECT_DATA=(SERVICE_NAME=".$dbServiceName.")))";
if(!$dbConn = oci_connect($usr,$pswd,$dbConnStr)) {
$err = oci_error();
trigger_error(''Failed to connect '' .$err[''message'']);
return false;
   }
return $dbConn;
 }
?>

现在,您已经创建了与数据库通信所需的所有函数,下面我们将了解一下 Cache_Lite_Function 类的工作方式。清单 7 是 testCache.php 脚本,该脚本使用 Cache_Lite_Function 类缓存以上函数的结果。

清单 7. 使用 PEAR::Cache_Lite 缓存

<?php
//File:testCache.php
require_once ''getOrderItems.php'';
require_once ''getOrderFields.php'';
require_once ''Cache/Lite/Function.php'';
$options = array(
''cacheDir'' => ''/tmp/'',
''lifeTime'' => 86400
);
if (!isset( 通过缓存数据库结果提高PHP性能 - 凌众科技

快速业务通道

通过缓存数据库结果提高PHP性能

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

GET[''order_no''])) {
die(''The order_no parameter is required'');
}
$order_no= 通过缓存数据库结果提高PHP性能 - 凌众科技
快速业务通道

通过缓存数据库结果提高PHP性能

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

GET[''order_no''];
$cache = new Cache_Lite_Function($options);
if ($orderfields = $cache->call(''getOrderFields'', $order_no)){
print "<h3>ORDER #$order_no</h3>\n";
print "<table>";
print "<tr><td>DATE:</td><td>".$orderfields[''ORDER_DATE'']."</td></tr>";
print "<tr><td>CUST_ID:</td><td>".$orderfields[''CUSTOMER_ID'']."</td></tr>";
print "<tr><td>TOTAL:</td><td>".$orderfields[''ORDER_TOTAL'']."</td></tr>";
print "</table>";
} else {
print "Some problem occurred while getting order fields!\n";
$cache->drop(''getOrderFields'', $order_no);
}
if (list($nrows, $orderitems) = $cache->call(''getOrderItems'', $order_no)){
//print "<h3>LINE ITEMS IN ORDER #$order_no</h3>";
print &

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号