格式化Code​​Igniter中查询结果的结果类型

时间:2016-06-16 11:11:34

标签: codeigniter mysqli

MYSQLI可以选择指定从DB获取的查询的reulttype。

mysqli_fetch_array(结果,与resultType);

我想知道在使用CodeIgniter框架时是否有类似的选项。它似乎默认返回一个ASSOC数组,而我需要一个MYSQLI_NUM类型的数组。

提前致谢

1 个答案:

答案 0 :(得分:0)

答案是否,CI没有返回MYSQLI_NUM类型数组的选项。

重构CI数据库返回以获得所需的结构并不是很困难。

假设您经常希望获得MYSQLI_NUM类型的数组结果,在您的模型中创建一个名为result_num_array()的函数。它将重构任何返回CI_DB_result的CI数据库函数的输出。这些功能是db->query()db->get()db->get_where()。其中任何一个的返回都可以是传递给result_num_array()的参数,这是以这种方式定义的。

public function result_num_array($query)
{
  $data = $query->result_array();
  $result = [];
  foreach($data as $record)
  {
    $row = [];
    foreach($record as $field)
    {
      $row[] = $field;
    }
    $result[] = $row;
  }
  return $result;
}

一个用法示例:在虚构的模型函数get_some()中使用result_num_array()就像这样

public function get_some()
{
  $query = $this->db->query("Select * from sometable");
  return $this->result_num_array($query);
}