Codeigniter 3致命错误:在null

时间:2016-06-24 15:59:01

标签: php codeigniter

我认为无法连接到数据库而且我不知道为什么。

我查看了stackoverflow并发现了这个问题: here并没有帮助我解决问题。

我已阅读Codeigniter 3中的文档:here并使用手动连接选项。

我的应用程序控制器中的类看起来像这样:

class home extends CI_Controller {

    /**
     * Class constructor
     * Load database lib
     */
    public function __construct()
    {
            $this->load->database();

    }

    /**
     * Index Page for this controller.
     *
     * Maps to the following URL
     *      http://example.com/home.php/welcome
     *  - or -
     *      http://example.com/home.php/welcome/index
     */
    public function index()
    {
        $query = $this->db->get('users');

        foreach ($query->result() as $row)
        {
            var_dump($row->fullName); //testing purpose
        }

        //$this->load->view('home', $data);

    }

我的应用程序中的数据库配置如下所示:

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'      => '',
    'hostname' => 'localhost',
    'username' => 'user',
    'password' => 'password',
    'database' => 'tasks',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt'  => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => FALSE
);

当我访问http://localhost/home.php/welcome

我收到此错误:

  

致命错误:在null中调用成员函数database()   第12行\ www \ task \ application \ controllers \ home.php

我尝试了var_dump($ this-> load),它是一个null,从这里我假设它无法建立与数据库的连接。

1 个答案:

答案 0 :(得分:3)

由于您正在扩展CI_Controller类并且已选择重载__construct方法,因此您需要在开始利用CI的核心功能之前调用父构造。

class home extends CI_Controller
{
    public function __construct()
    {
        // $this->load does not exist until after you call this
        parent::__construct(); // Construct CI's core so that you can use it

        $this->load->database();
    }
}

有关详细信息,请参阅http://www.codeigniter.com/user_guide/general/controllers.html#class-constructors