我在获取正确缓存的特定查询时遇到问题。缓存在我的应用程序的其他地方工作,所以我认为我已正确配置所有内容,但我无法使这个特定实例工作。
我的配置
'cache'=>array(
'class'=>'system.caching.CFileCache',
),
然后,我试图执行的代码:
static public function getCities()
{
Yii::trace("Getting unique set of cities");
$sqlStatement = "select distinct city from mls_data where city <> '' order by city";
$connection = Yii::app()->db;
$connection->cache(18000);
$command= $connection->createCommand($sqlStatement);
// execute an SQL query and fetch the result set
$reader=$command->query();
// each $row is an array representing a row of data
foreach($reader as $row)
{
$returnArray[$row["city"]] = ucwords ( strtolower( substr($row["city"],0,17)));
}
return $returnArray;
}
sql是执行属性,并按预期返回,它从不创建缓存条目,然后永远不会从缓存中拉出。
任何人都可以看到我在这里做错了什么?
答案 0 :(得分:1)
检查一下:
$connection = $connection->cache(18000);
答案 1 :(得分:0)
您应该在查询行中应用缓存,如下所示:
$result = $command->cache(18000)->query();