【问题标题】:Cannot use object of type mysqli as array [duplicate]不能将mysqli类型的对象用作数组[重复]
【发布时间】:2020-01-23 00:53:08
【问题描述】:

我正在尝试生成一个 pdf 报告,但我收到了这个错误:

Type: Error

Message: Cannot use object of type mysqli as an array

型号

function pdf($post_id)
 {
 $result = $this->db->query("SELECT * FROM tb_data_utama WHERE nipBaru='$post_id'");
        return $result;
 }

控制器

 function getpdf()
    {
        $this->load->model('model_user');
        $this->load->library('pdf');
        $post_id = $this->uri->segment(3);
        $x['data'] = $this->model_user->pdf($post_id);
        $html = $this->load->view('GeneratePdfView', $x, [], true);
        $this->pdf->createPDF($html, 'mypdf', false);
    }

【问题讨论】:

    标签: php html codeigniter


    【解决方案1】:

    您需要添加->result_array() 来运行您的查询!!!
    来自文档

    上面的 result() 函数返回一个对象数组。例子: $row->标题

    $x['data'] = $this->model_user->pdf($post_id)->result_array(); <--- here
    

    【讨论】:

      【解决方案2】:

      您可以通过以下方式简单地传递返回数组

      function pdf($post_id)
      {
          $result = $this->db->query("SELECT * FROM tb_data_utama WHERE nipBaru='$post_id'");
          return $result->result_array();;
      }
      

      【讨论】:

        【解决方案3】:

        通过这个$this-&gt;db-&gt;query(),您只是在执行查询。得不到结果。 使用各种方法之一来获取结果 - result()row_array()result_array() 等。

        在你的模型 -

        function pdf($post_id)
         {
          $result = $this->db->query("SELECT * FROM tb_data_utama WHERE nipBaru='$post_id'");
          return $result->row_array();
         }
        

        在您的视图中使用类似的值 -

        echo $data['nipBaru'];
        

        【讨论】:

        • 当您要获得多于一行的结果时,这是一种不好的做法,它只会给您一条记录
        • @MacRathod,我使用它是因为查询将只返回与传递的 post_id 相关的单个帖子的数据
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-11
        • 2012-03-29
        • 2011-10-12
        • 2018-04-27
        相关资源
        最近更新 更多