Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Yii-CActive record-如何处理服务器查询缓存_Mysql_Activerecord_Yii_Query Cache - Fatal编程技术网

Mysql Yii-CActive record-如何处理服务器查询缓存

Mysql Yii-CActive record-如何处理服务器查询缓存,mysql,activerecord,yii,query-cache,Mysql,Activerecord,Yii,Query Cache,我正在为我的webapp使用Yii框架(它使用ACtiveRecord)。 在ACtiveRecord的后面,框架管理来自数据库的所有查询 我的问题是我在一个共享服务器上,结果服务器启用了查询缓存,这在美国是一个难题。我真的需要绕过查询缓存。 FlUSH对我不起作用,因为我没有重新加载权限 如果我使用每个ActiveRecord数据库获取作为一个粗略的mySQL查询,我想我可以将查询本身设置为禁用缓存的方式,比如使用NO_cache标记,或者使用包含当前时间戳的错误查询词(导致每个查询都是不同的

我正在为我的webapp使用Yii框架(它使用ACtiveRecord)。 在ACtiveRecord的后面,框架管理来自数据库的所有查询

我的问题是我在一个共享服务器上,结果服务器启用了查询缓存,这在美国是一个难题。我真的需要绕过查询缓存。 FlUSH对我不起作用,因为我没有重新加载权限

如果我使用每个ActiveRecord数据库获取作为一个粗略的mySQL查询,我想我可以将查询本身设置为禁用缓存的方式,比如使用NO_cache标记,或者使用包含当前时间戳的错误查询词(导致每个查询都是不同的查询文本)

我想问你们的问题是Yii/ActiveRecord方案的最佳方式是什么。 我可以更改findAll()函数的实现吗? 我有一个CActiveRecord的子类,所以如果我能在那里做点什么,那就太完美了

很抱歉问了这么长的问题。
宜兰

默认范围

模型类可以有一个默认作用域,该作用域将应用于有关模型的所有查询(包括关系查询)。为此,我们重写CActiveRecord::defaultScope方法,如下所示

class Content extends CActiveRecord
{
    public function defaultScope()
    {
        return array(
            'condition'=>"1<='".time()."'",
        );
    }
}
类内容扩展了CActiveRecord
{
公共函数defaultScope()
{
返回数组(

“条件”=>“1默认范围

模型类可以有一个默认作用域,该作用域将应用于有关模型的所有查询(包括关系查询)

class Content extends CActiveRecord
{
    public function defaultScope()
    {
        return array(
            'condition'=>"1<='".time()."'",
        );
    }
}
类内容扩展了CActiveRecord
{
公共函数defaultScope()
{
返回数组(
'条件'=>“1