【发布时间】: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->db->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