【问题标题】:How to get field names from Opencart2 Mysqli Query如何从 Opencart2 Mysqli 查询中获取字段名称
【发布时间】:2015-07-27 20:08:56
【问题描述】:

我试图从动态 Mysqli 查询中获取 opencart 中的字段名称,但我收到以下错误:-

Warning: mysqli_fetch_fields() expects parameter 1 to be mysqli_result, object given in [mypath]

这是在运行返回行的 SELECT 查询时

查询运行,因此不是因为查询失败或返回空结果。

这是一个代码示例

$mysqlQuery = $this->db->query("SELECT * FROM attribute");
        $fieldinfo = mysqli_fetch_fields($mysqlQuery);

任何帮助表示赞赏

【问题讨论】:

    标签: php mysqli opencart2.x


    【解决方案1】:

    注意:我假设您的配置文件中有 'DB_DRIVER'=> 'mysqli'

    现在当你运行$mysqlQuery = $this->db->query("SELECT * FROM ".DB_PREFIX."attribute");

    db 执行 mySqli->query 函数来获取数据,所以让我们将 fetch_fields() 函数添加到 mySqli->query 返回值

    system/library/db/mysqli.php:32
    

    $result->rows = $data;之后

    添加$result->fields = $query->fetch_fields();

    现在您可以通过调用获取字段

    $mysqlQuery = $this->db->query("SELECT * FROM ".DB_PREFIX."attribute");
    print_r($mysqlQuery->fields);
    

    【讨论】:

    • 感谢您的回复,但这不会增加整个网站的开销吗?什么时候只需要在特定模块的一个查询调用中?
    【解决方案2】:

    试试这个

    $columns = $this->db->query("SHOW COLUMNS FROM " . DB_PREFIX . "table_name"); print_r($columns->rows);

    【讨论】:

      【解决方案3】:

      最后我只是使用了查询结果的关联数组,并使用了带有 as $key 的 foreach 循环来输出表头名称。

      <?php foreach($results as $key => $result); ?>
      

      这非常适合我的需求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-17
        相关资源
        最近更新 更多