Mysql 从CakePHP 2.x中完全删除查询缓存

Mysql 从CakePHP 2.x中完全删除查询缓存,mysql,cakephp,caching,innodb,cakephp-2.3,Mysql,Cakephp,Caching,Innodb,Cakephp 2.3,我有以下疑问 public function test() { $uuid = substr( String::uuid() , 4 , rand( 7 , 10 ) ); $name = $uuid; $event = $this->Event->getEvent( array( "event_id" => "5240e695-9acc-4e32-9b98-1aecb3d0838" ) ); $event[ "event_name" ]

我有以下疑问

 public function test()
 {
    $uuid = substr( String::uuid() , 4 , rand( 7 , 10 ) );
    $name = $uuid;

    $event = $this->Event->getEvent( array( "event_id" => "5240e695-9acc-4e32-9b98-1aecb3d0838" ) );
    $event[ "event_name" ] = $name;

    $this->Event->update( $event );

    debug( $this->Event->search( array( "event_id" => $event[ "event_id"] ) )[ 0 ][ "event_name" ] );

    debug( $this->Event->search( array( "event_id" => $event[ "event_id"] , "limit" => 1 ) )[ 0 ][ "event_name" ] );
}
我为从mySQL(InnoDB)表
event
检索到的特定事件分配一个随机名称,为其分配一个随机新名称,并将其保存回数据库

当我运行代码中的最后两条语句时,结果并不相同,请注意,第二个查询中的最后一个参数只是将LIMIT 1添加到第二个查询的末尾。(我没有使用CakePHP2.x的典型方法来搜索表)。第一次搜索调用的结果将产生来自上一个请求的上一个结果,而第二次搜索调用将在
事件
表中产生当前实际更新的名称

我一直在到处寻找如何从数据源对象中完全删除查询缓存,但不知道如何删除。我尝试在datasource对象上使用flushMethodCache(),但它没有任何作用,我尝试了设置

$cacheQueries = false, $cacheSources = false;
在AppModel中,但这也不起任何作用。我已尝试在/App/Config/Core.php中查找并禁用缓存,并将缓存时间设置为0。这些都不起作用。

发现了问题:

而不是打电话

$model->query($string)

我需要打电话


$model->query($string,false)

搜索功能是做什么的?你能发布一些关于它的代码吗?为什么不使用CakePHP 2.x的典型方法来搜索表?出于安全原因,我不能发布框架的内部内容,但我可以发布这两个函数调用执行的两个查询字符串。无论何时修改第一个查询,但返回等效的结果,该查询都会返回由
query
函数中的事件模型调用的先前结果,我得出的结论是查询正在被缓存。我不使用CakePHP 2.x典型的CRUD方法,因为它们不能完全满足我正在构建的应用程序的复杂需求,因为我需要比CakePHP 2.x提供的更多的查询定制。