【问题标题】:PHP Fatal error: Call to a member function result_array() on a non-objectPHP 致命错误:在非对象上调用成员函数 result_array()
【发布时间】:2017-07-06 16:11:14
【问题描述】:

作为初学者,我正在使用 codeigniter 框架研究 php。我的程序在我的本地主机上完美运行。但是上传到网络服务器后,某些页面显示错误。我已经搜索过这个问题,大多数解决方案都表明我的程序是正确的。但是对于实时服务器,它显示 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() 函数在我需要获取数据的其他地方运行良好。提前谢谢你。

【问题讨论】:

  • 你能把错误行不改吗?
  • 这样的错误表明您的数据库操作由于某种原因失败。原因通常记录在您的错误日志中,因此请先查看那里。
  • PHP致命错误:在线调用/e/web-std/for-2401/for2401/application/models/Admin_Panel/Pages_Model.php中非对象的成员函数result_array() 24、referer:for-2401.de/for2401/index.php/content/navigation_menus这是@Adrian的错误
  • 好的,它就在那里说,你的 $query 似乎是一个非对象。 var_dump($query) 并检查它打印出来的内容。这是基本调试。
  • 如果$query 不是对象,则表示您的查询失败。可能是因为$this-&gt;db-&gt;join('SubMenu', 'SubMenu.SubMenuID = Page.SubMenuID', 'left'); should be $this->db->join('SubMenu', 'SubMenu.SubMenuID = page.SubMenuID', 'left');` p page.SubMenuID 中的小写?

标签: php mysql codeigniter mysqli


【解决方案1】:

试试这个作为控制器,

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>

【讨论】:

  • 好吧。我发现了问题。我的数据库区分大小写,这就是它显示该错误的原因。
【解决方案2】:

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

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();
}

【讨论】:

    猜你喜欢
    • 2017-10-22
    • 2015-02-06
    • 2016-02-12
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多