构建客户端
现在,您已经针对 ORDERS 和 ORDER_ITEMS
表创建了注册,下面我们将了解一下访问这些表中存储的订单及其订单项的客户端应用程序如何使用更改通知。为此,您可以构建一个 PHP
应用程序,它将缓存针对以上表的查询结果,并采取相应的操作来响应有关对这些表所做更改的通知(从数据库服务器中收到这些通知)。一个简单的方法是使用
PEAR::Cache_Lite 程序包,它为您提供了一个可靠的机制来使缓存数据保持最新状态。尤其是,您可以使用 Cache_Lite_Function
类(PEAR::Cache_Lite 程序包的一部分),通过该类您可以缓存函数调用。
例如,您可以创建一个函数来执行下列任务:建立数据库连接、针对该数据库执行 select
语句、获取检索结果并最终以数组形式返回结果。然后,您可以通过 Cache_Lite_Function 实例的 call
方法缓存由该函数返回的结果数组,以便可以从本地缓存而不是从后端数据库读取这些数组,这样可以显著提高应用程序的性能。然后,在收到缓存数据更改的通知时,您将使用
Cache_Lite_Function 实例的 drop 方法删除缓存中的过期数据。
回过头来看看本文的示例,您可能要创建两个函数,用于应用程序与数据库交互:第一个函数将查询 ORDERS 表并返回具有指定 ID
的订单,而另一个函数将查询 ORDER_ITEMS 表并返回该订单的订单项。“清单 4”显示了包含 getOrderFields 函数(该函数接受订单 ID
并返回一个包含所检索到订单的某些字段的关联数组)的 getOrderFields.php 脚本。
清单 4.
获取指定订单的字段
<?php <br>//File:getOrderFields.php <br>require_once 'connect.php'; <br>function getOrderFields($order_no) { <br>if (!$rsConnection = GetConnection()){ <br>return false; <br> } <br>$strSQL = "SELECT TO_CHAR(ORDER_DATE) ORDER_DATE, CUSTOMER_ID, <br>ORDER_TOTAL FROM ORDERS WHERE order_id =:order_no"; <br>$rsStatement = oci_parse($rsConnection,$strSQL); <br>oci_bind_by_name($rsStatement, ":order_no", $order_no, 12); <br>if (!oci_execute($rsStatement)) { <br>$err = oci_error(); <br>print $err['message']; <br>trigger_error('Query failed:' . $err['message']); <br>

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
