PHP致命错误:在非对象上调用成员函数result_array()

时间:2017-07-06 16:11:14

标签: php mysql codeigniter mysqli

我正在使用codeigniter框架作为初学者使用php。我的程序在我的localhost上完美运行。但在上传到Web服务器后,它显示某些页面的错误。我搜索过这个问题,大多数解决方案都显示我的程序是正确的。但对于实时服务器,它显示PHP致命错误。首先,每当我想在数据表中看到数据时,它就会显示HTTP 500错误。我的服务器管理员告诉我,这是因为我的模型每当我返回数据result_array()。这是我的模特,

 public function get_pages()
    {
        $this->db->select('*');
        $this->db->from('page');
        $this->db->join('NavigationMenu', 'NavigationMenu.MenuID = page.MenuID', 'left');
        $this->db->join('SubMenu', 'SubMenu.SubMenuID = Page.SubMenuID', 'left');
        $query = $this->db->get();
        return $query->result_array();
    }

这是我的控制器,

public function pages()
{
        $data['page'] = $this->Pages_Model->get_pages();
        $tempString =  $this->load->view('admin_panel/content/pages', $data, true);
        $page_data = array(
            'fileHere' => $tempString
        );
        $this->load->view('admin_panel/shared/admin_layout',$page_data);
} 

这是我的查看页面,

<!-- Main content -->
<div class="box">
    <div class="box-header">
        <h3 class="box-title">Page Lists</h3>
    </div>
    <!-- /.box-header -->
    <div class="box-body">
        <table id="page_table" class="table table-bordered table-striped">
            <thead>
                <tr>
                  <th>Title</th>
                  <th>Main Menu</th>
                  <th>Sub-Menu</th>
                  <th>Edit/Remove</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($page as $page_item): ?>

                    <tr>
                        <td><?php echo $page_item['PageTitle']; ?></td>
                        <td><?php echo $page_item['MenuName']; ?></td>
                        <td><?php echo $page_item['SubMenuName']; ?></td>
                        <td><button type="submit" class="btn btn-primary" onClick="javascipt:window.location.href='<?php echo base_url('content/edit_page_content')?>/<?php echo $page_item['PageID']; ?>'">Edit</button>
                            <button type="submit" class="btn btn-danger delete_page" id="<?php echo $page_item['PageID']; ?>">Remove</button></td></td>
                    </tr>
                    
                <?php endforeach; ?>                
            </tbody>
        </table>
    </div>
    <!-- /.box-body -->
</div>

<!-- /.content -->

这是我的一个问题。我相信,如果我得到一个解决方案,我可以解决其他问题。 result_array()函数在我需要获取数据的其他地方工作得很好。提前谢谢。

2 个答案:

答案 0 :(得分:0)

试试这个作为控制器,

    

public function pages()
        {
                $data['page'] = $this->Pages_Model->get_pages();
                $this->load->view('admin_panel/content/pages',$data);
                $this->load->view('admin_panel/shared/admin_layout',$data);
        }

</pre>

答案 1 :(得分:0)

我的数据库区分大小写。这就是它显示错误的原因。我修改了我的模型,现在可以使用了。

public function get_pages()
{
    $this->db->select('*');
    $this->db->from('Page');
    $this->db->join('NavigationMenu', 'NavigationMenu.MenuID = Page.MenuID', 'left');
    $this->db->join('SubMenu', 'SubMenu.SubMenuID = Page.SubMenuID', 'left');
    $query = $this->db->get();
    return $query->result_array();
}