ホームページ >バックエンド開発 >PHPチュートリアル >データベース結果をキャッシュして PHP のパフォーマンスを向上させる (4)_PHP チュートリアル
クライアントの構築
ORDERS テーブルと ORDER_ITEMS
テーブルの登録を作成したので、これらのテーブルに保存されている注文とその品目にアクセスするクライアント アプリケーションによって変更通知がどのように使用されるかを見てみましょう。これを行うには、上記のテーブルに対するクエリ結果をキャッシュし、これらのテーブルに加えられた変更に関する通知に応じて適切なアクションを実行する PHP
アプリケーションを構築できます ( データベースから サーバーがこれらの通知を受信します) )。簡単な方法は、
PEAR::Cache_Lite パッケージを使用することです。これは、キャッシュ データを最新の状態に保つための信頼できるメカニズムを提供します。特に、関数呼び出しをキャッシュできる Cache_Lite_Function
クラス (PEAR::Cache_Lite パッケージの一部) を使用できます。
たとえば、データベース接続を確立し、データベースに対して select
ステートメントを実行し、検索結果を取得し、最後に結果を配列として返すというタスクを実行する関数を作成できます。その後、Cache_Lite_Function インスタンスの呼び出し
メソッドを介して、関数によって返された結果配列をキャッシュできるため、これらの配列をバックエンド データベースからではなくローカル キャッシュから読み取ることができ、これによりアプリケーションのパフォーマンスが大幅に向上します。その後、キャッシュされたデータへの変更が通知されたときに、
Cache_Lite_Function インスタンスのdrop メソッドを使用して、期限切れのデータをキャッシュから削除します。
この記事の例を振り返ると、アプリケーションがデータベースと対話するために 2 つの関数を作成するとよいでしょう。最初の関数は ORDERS テーブルにクエリを実行し、指定された ID を持つ注文を返します
、もう 1 つの関数は ORDER_ITEMS をクエリします。テーブルを検索し、その注文の品目を返します。リスト 4 は、getOrderFields 関数を含む getOrderFields.php スクリプトを示しています。この関数は注文 ID
を受け取り、取得した注文のフィールドの一部を含む連想配列を返します。
リスト 4.
指定された順序のフィールドを取得します
<?php <br>//File:getOrderFields.php <br>require_once 'connect.php' <br>function getOrderFields($order_no) { <br>if (!$rsConnection = GetConnection( ) {<br>Return false; <br> $ strsql = "select to_char (order_date) Order_date、CUSTOMER_ID、<br>Reder_total from order_id =: order_no"; $ RSSST ATEMENT = OCI_PARSE ($ RSConnection, $ Strsql); OCI_BIND_BY_NAME ( $rsStatement, ":order_no", $order_no, 12); <br>if (!oci_execute($rsStatement)) { <br>$err = oci_error(); <br>trigger_error('Query失敗しました: ' . $err['メッセージ']); <br><br><br>http://www.bkjia.com/PHPjc/631001.html<br><br>www.bkjia.com<p align="left">true</p><div style="display:none;"> <span id="url" itemprop="url">http://www.bkjia.com/PHPjc/631001.html</span><span id="indexUrl" itemprop="indexUrl">技術記事</span><span id="isOriginal" itemprop="isOriginal">クライアントの構築 ORDERS テーブルと ORDER_ITEMS テーブルの登録を作成したので、これらのテーブルに保存されている注文とその明細にアクセスするクライアント アプリケーションを見てみましょう... </span><span id="isBasedOnUrl" itemprop="isBasedOnUrl"></span><span id="genre" itemprop="genre"> </span><span id="description" itemprop="description"></span> </div>