如果启用了数据库查询缓存,则Codeigniter $ query-> list_fields()无效

时间:2015-09-16 10:40:45

标签: php codeigniter caching codeigniter-2 codeigniter-3

我只是想知道,如果启用数据库查询缓存,为什么$ query-> list_fields()方法会抛出一个空数组。这实际上是一个获取查询字段名称的Codeigniter方法。

但与此同时,如果我不启用数据库查询缓存,它可以正常工作。这个问题也出现在Windows服务器上,所以我认为环境根本不重要。

另外,我已经检查过MySQL本机函数" mysqli_fetch_field"在两个服务器(Linux和Windows)中获取字段名称。它工作正常。所以我认为这个问题只与Db查询缓存有关。

有关您的信息,我使用Codeigniter版本3。

参考:Codeigniter $this->list_fields

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

文件摘录:

并非所有数据库功能都使用缓存

最后,我们需要指出缓存的结果对象是完整结果对象的简化版本。因此,某些查询结果函数无法使用。

使用缓存的结果对象时,以下功能不可用:

num_fields()
field_names()
field_data()
free_result()

此外,缓存时两个数据库资源(result_id和conn_id)不可用,因为结果资源仅适用于运行时操作。