4

我在 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 构造函数是绝对首先被调用的,所以我认为其他文件在这个阶段并不重要(?)。

4

2 回答 2

3

我有同样的问题,通过更改'dbdriver' => 'mysqli''dbdriver' => 'mysql'in you解决了config/database.php。还要确保您的数据库连接参数正确。

于 2016-01-11T13:58:18.097 回答
1

我的猜测是,我必须查看您的配置才能确定,您的Loader. 大多数情况下,这与自动加载的库有关,有时与错误的数据库配置有关。我的第一个建议是尝试使用默认配置使某些东西正常工作。如果这有效,那么你有一个很好的起点。

于 2013-09-10T14:13:54.557 回答