Yii CDbConnection缓存无法正常工作

时间:2014-05-08 12:37:48

标签: php caching yii

我在获取正确缓存的特定查询时遇到问题。缓存在我的应用程序的其他地方工作,所以我认为我已正确配置所有内容,但我无法使这个特定实例工作。

我的配置

'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是执行属性,并按预期返回,它从不创建缓存条目,然后永远不会从缓存中拉出。

任何人都可以看到我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

检查一下:

$connection = $connection->cache(18000);

答案 1 :(得分:0)

您应该在查询行中应用缓存,如下所示:

$result = $command->cache(18000)->query();