CodeIgniter与数据库的连接

时间:2013-02-02 18:25:33

标签: php codeigniter

我决定结束与Doctrine 2.3的合作,现在我想只使用CodeIgniter连接数据库你知道我的代码有什么问题吗?

我收到此错误:

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Hello::$db

Filename: core/Model.php

Line Number: 51

database.php中

$db['default']['hostname'] = 'localhost:8080';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'ci_doctrine';
$db['default']['dbdriver'] = 'mysql';

控制器

<?php
    // system/application/controllers/hello.php

    class Hello extends CI_Controller {

        public function __construct()
        {
             parent::__construct();
        }
       function world() {
            echo "Hello CodeIgniter!";
        }

        function user_test() {

            $this->load->model('user');

            $this->user->save_User('username','password','first_name','last_name');

       }
}

?>

模型 - 数据库“user”中的表名

<?php
    // system/application/models/user.php

    class User extends CI_Model {

            function __construct()
            {
                // Call the Model constructor
                parent::__construct();
            }

             function save_User($username,$password,$fName,$lName)  {

                $this->username   = $username; 
                $this->password = $password;
                $this->first_name    = $fName;
                $this->last_name    = $lName;
                $this->db->insert('user', $this);
              }

    }
?>

4 个答案:

答案 0 :(得分:4)

您需要加载数据库库:

config / autoload.php

$autoload['libraries'] = array('database');

答案 1 :(得分:3)

问题是您没有加载数据库类

$this->load->database();

Here是Codeigniter用户指南

没有连接就不能使用数据库类,因此它说的是未定义的属性db。

答案 2 :(得分:1)

手动连接
在控制器文件中使用它

$this->load->database();

用于数据库中的自动连接

转到Controller然后在autoload.php中进行以下更改

$autoload['libraries'] = array('database');

答案 3 :(得分:0)

您需要加载数据库库:

<强>配置/ autoload.php

 $autoload['libraries'] = array('database');

试试吧。