0

我知道这听起来所以转贴好几次。但我无法解决它。

我尝试将我的应用程序连接到 mysql,这些是我尝试过的(我只尝试了这些选项中的一个,而不是两个):

  1. $autoload['libraries'] = array('database');application\config\autoload.php,但我得到了Fatal error: Call to a member function get() on a non-object in /Users/zakkafm/Sites/CodeIgniter/application/models/My_models.php on line 15

  2. $this->load->database();on application\models\My_models.phpon __construct()(我也添加了parent::__construct(),但我得到了Fatal error: Call to a member function database() on a non-object in /Users/zakkafm/Sites/CodeIgniter/application/models/My_model.php on line 7

那么,这里有什么问题呢?

编辑:这是我的database.php样子。

$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'trial';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

解决!!!

毕竟,这都是因为我在 Eclipse 上添加的自动完成功能system/core/Controller.phpsystem/core/Model.php.

4

2 回答 2

0

在你My_models.php身上,你不应该打电话$this->load->database();应该只有:

class My_models extends CI_Model {

    /**
     * Constructor
     */
    function __construct()
    {
        parent::__construct();
    }

    function something(){
    // your model code goes here
    }

}

此外,您只需要启用 就autoload可以了(请记住,需要为 PHP 加载MYSQL库。

而且您可能在这里遇到错误(看不到您的代码,所以不确定):

Fatal error: Call to a member function get() on a non-object in      
/Users/zakkafm/Sites/CodeIgniter/application/models/My_models.php on line 15
于 2012-07-09T04:55:14.923 回答
0

嗯..,我想你不必添加

$this->load->database();

在您的 My_models.php 上,因为我知道它会自动连接到您在 database.php 文件中设置的数据库。因此,将其从 My_models.php 文件中删除并重试。

希望能帮助到你 :)

于 2012-07-09T04:47:59.080 回答