我在helloworld.php中有以下代码:
<?php
class Helloworld extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->load->model("helloworld_model");
$data["result"] = $this->Helloworld_model->getData();
$data["page_title"] = "CI Helloworld appis";
$this->load->view("helloworld_view", $data);
}
}
?>
代码在调用父构造函数后停止执行,而不会给出任何错误消息。 /var/log/apache2/error.log中也没有任何内容出现。如果我在构造函数调用之前回显一些东西,它就会被回显。如果我在构造函数调用之前键入乱码,则会打印正确的错误消息。为什么会这样?
该站点使用Code Igniter 2.1.4在Ubuntu服务器12.04上运行。和PHP 5.3。
其他文件是helloworld_model.php:
<?php
class Helloworld_model extends CI_Model {
public function __construct()
{
parent::__construct();
$this->load->database();
}
public function getData()
{
$query = $this->db->get("data");
if ($query->num_rows() > 0)
{
return $query->row_array();
}
else
{
show_error("Database is empty");
}
}
}
?>
和helloworld_view.php:
<html>
<head>
<title><?php echo $page_title ?></title>
</head>
<body>
<?php foreach($result as $row): ?>
<h3><?php echo $row["title"]?></h3>
<p><?php echo $row["text"]?></p>
<br />
<?php endforeach ?>
</body>
</html>
据我所知,Controller构造函数绝对是首先被调用的,所以我不认为其余的文件在这个阶段很重要(?)。
答案 0 :(得分:3)
通过将您'dbdriver' => 'mysqli'
中的'dbdriver' => 'mysql'
更改为config/database.php
,我遇到了同样的问题。还要确保数据库连接参数正确。
答案 1 :(得分:1)
我的猜测,我必须看到你的配置,确保你Loader
的初始化存在问题。最常见的是这与自动加载的库有关,有时它与错误的数据库配置有关。我的第一个建议是尝试使用默认配置工作。如果有效,那么你就有了一个很好的起点。