Web sayfamda kullanmak için bir önbellek sınıfı kullanmaya çalışıyorum.getirme, önbellekten aldığımda yalnızca bir satır döndürür
Basit mantık böyledir: yoksa
- :
deneyin önbellekten verileri almak için çalıştırmak sorgu ve bir önbellek olarak ayarlayabilirsiniz.
- Varsa: verileri önbellekten görüntüleyin.
kodum
<?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>";
}
?>
benim çıkış ve problem
Ben iki satır var.
Onları sorgudan aldığımda, kodum her ikisini de çıkarır. Hangisi güzel.
row1
row2
Ancak sayfa önbelleğe getirdiğinde, yalnızca son satırı verir. Tanımlanmamış indeks: id hatası i
Ben fetchAll()
yerine fetch()
işlevini ama Bildirimi alıyorum bu kez kullanmaya çalıştı çalıştığınız şeyi
row2
.
Bu yüzden takılıyorum ve yardımınıza ihtiyacım var.
kullanırsanız, tüm kayıtlar için her kaydın veya önbelleği için önbelleğe sahip istiyoruz? –
Sorunuzu 'Cache' sınıfının' get' ve 'set' yöntemiyle güncelleyin? –
@MaxP. Tüm kayıtları bir kerede önbelleğe almak istiyorum. – LetsSeo