Codeigniter:查询未正确打印

时间:2017-05-10 11:50:00

标签: php mysql codeigniter

我已经实现了一个查询来显示我的表的行数,查询已在模型中实现,并且该函数已在控制器类中调用,但它会抛出下一个文本:

  

CI_DB_mysqli_result对象([conn_id] => mysqli对象(   [affected_rows] => 1 [client_info] => mysqlnd 5.0.11-dev - 20120503 -   $ Id:76b08b24596e12d4553bd41fc93cccd5bac2fe7a $ [client_version] =>   50011 [connect_errno] => 0 [connect_error] => [errno] => 0 [错误] =>   [error_list] => Array()[field_count] => 1 [host_info] =>本地主机   通过TCP / IP [info] => [insert_id] => 0 [server_info] =>   5.5.5-10.1.21-MariaDB [server_version] => 50505 [stat] =>正常运行时间:8603个主题:1个问题:1350慢查询:0打开:38个表格:1   打开表:每秒32个查询平均值:0.156 [sqlstate] => 00000   [protocol_version] => 10 [thread_id] => 61 [warning_count] => 0)   [result_id] => mysqli_result对象([current_field] => 0   [field_count] => 1 [长度] => [num_rows] => 1 [type] => 0)   [result_array] => Array()[result_object] =>数组()   [custom_result_object] => Array()[current_row] => 0 [num_rows] =>   [row_data] => )

数据库

enter image description here

模型

<?php

class Entregas_Model extends CI_Model {

    public function __construct() {
        parent::__construct();
        // Your own constructor code
        $this->load->database();
    }

    //Para obtener el número de filas 
    //y así determinar el número de plazas
    public function get_rows($idCarga) {
        $this->db->select('COUNT(idCarga)');
        $this->db->from('entregas');
        $this->db->join('intervalosHorarios', 'entregas.idCarga = intervalosHorarios.idIntervaloHorario');
        //$this->db->on('entregas.idCarga = intervalosHorarios.idCarga');
        $this->db->where('entregas.idIntervaloHorario', $idCarga);

        $q = $this->db->get();
        //$q = $q->result_array();
        print_r($q);
        return $q;
    }

}

控制器(简短版)

  public function entregas_lista($idCarga) {

        $crud = new grocery_CRUD();

        $this->Entregas_Model->get_rows($idCarga);
  }   

我做错了什么?

2 个答案:

答案 0 :(得分:2)

为了简单起见,您应该更改Query Builder一点,如下所示:

$this->db->from('entregas');
$this->db->join(/*Join Parameters*/);
$this->db->where('entregas.idIntervaloHorario', $idCarga);
$q = $this->db->count_all_results(); //q should contain integer that represent your records count

在其他情况下,您想获得一条记录或所有记录,您应该向get添加另一项功能,如下所示:

$this->db->get()->row(); //return 1 row
$this->db->get()->result(); //return all matched rows

答案 1 :(得分:1)

使用以下行查看与数据库相关的信息:

$this->output->enable_profiler(TRUE);

它将显示当前调用堆栈中运行的所有数据库查询。或者,您可以在查询运行后使用下面的行,以仅打印查询。

$this->db->last_query();