5
私のWebページで使用するキャッシュクラスを採用しようとしています。キャッシュから取得したフェッチは1行だけを返します。
シンプルなロジックというようなものです:存在しない場合
- :実行クエリをキャッシュとしてこれを設定
は、キャッシュからデータを取得してください。
- キャッシュからのデータを表示します。私は2つの行を持って私のコード
<?php // Require Library require_once("phpfastcache.php"); $cache = phpFastCache(); //lets get it from cache. $r = $cache->get("cachethis"); if($r == null) { echo " THIS TIME RUN WITHOUT CACHE <br> "; $time_start = microtime(true); $query = $handler->query("SELECT * FROM members"); while($r = $query->fetch(PDO::FETCH_ASSOC)) { //echo echo "$r[id]"; //lets cache query above. $cache->set("cachethis", $r, 10); } $time_end = microtime(true); $time = ($time_end - $time_start); echo "<p>done in " . $time . " seconds</p>"; } //if ($r != null) else { echo "RUN WITH CACHE. YES.<br> "; $time_start = microtime(true); //echo from cache.. echo "$r[id]"; $time_end = microtime(true); $time = ($time_end - $time_start); echo "<p>cache done in " . $time . " seconds</p>"; } ?>
私の出力と問題
。
私はクエリからそれらをフェッチするとき、私のコードは両方を出力します。どちらがいいですか?
row1
row2
しかし、ページがキャッシュから私を呼び出すと、最終行だけが出力されます。未定義のインデックス:IDエラー私は私が代わりにfetch()
のfetchAll()
機能を使用しようとしましたが、今回は私が注目して取得しています
を試してみました何
row2
。
だから私は立ち往生し、あなたの助けが必要です。
を使用する場合は、すべてのレコードのすべてのレコードやキャッシュのためのキャッシュを持っていたいですか? –
あなたの質問を 'Cache'クラスの' get'メソッドと 'set'メソッドで更新しますか? –
@ MaxP。私は一度にすべてのレコードをキャッシュしたい。 – LetsSeo