【问题标题】:Codeigniter $query->list_fields() not working if db query cache is enabled如果启用了数据库查询缓存,Codeigniter $query->list_fields() 将不起作用
【发布时间】:2015-09-16 10:40:44
【问题描述】:

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

但同时,如果我不启用数据库查询缓存,它工作正常。这个问题也在 Windows 服务器中,所以我相信环境根本不重要。

另外,我检查了 MySQL 本机函数“mysqli_fetch_field”以获取两个服务器(Linux 和 Windows)中的字段名称。它工作正常。所以我相信这个问题只与 Db 查询缓存有关。

供您参考,我使用的是 Codeigniter 版本 3。

参考:Codeigniter $this->list_fields

任何帮助将不胜感激。

【问题讨论】:

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


【解决方案1】:

文档摘录:

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

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

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

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

另外,两个数据库资源(result_id 和 conn_id)在缓存时不可用,因为结果资源只与运行时操作有关。

【讨论】:

    猜你喜欢
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 2012-08-18
    相关资源
    最近更新 更多