4

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

我得到的这个错误:

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Hello::$db

Filename: core/Model.php

Line Number: 51

数据库.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');

       }
}

?>

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

<?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

4 回答 4

4

您需要加载数据库库:

配置/自动加载.php

$autoload['libraries'] = array('database');
于 2013-02-02T18:33:29.593 回答
3

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

$this->load->database();

是 Codeigniter 用户指南

如果没有连接,您将无法使用数据库类,因此它说的是未定义的属性 db。

于 2013-02-02T18:32:36.427 回答
1

手动连接
在你的控制器文件中使用这个

$this->load->database();

用于自动连接数据库

转到控制器,然后在 autoload.php 中进行以下更改

$autoload['libraries'] = array('database');
于 2016-11-03T06:01:32.270 回答
0

您需要加载数据库库:

配置/自动加载.php

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

尝试一下 。

于 2016-11-04T06:10:56.447 回答