2012-07-09 83 views
0

我知道这听起来很多次重新发布。但我无法解决它。无法使用codeigniter连接到数据库

我想我的应用程序连接到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();application\models\My_models.php__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上添加了自动完成功能。

+0

我相信你很好自动加载它,但是你的My_model有一个问题,你能不能更新内容? – Tjkoopa 2012-07-09 10:25:47

+0

问题解决了!请在帖子中阅读我的“已解决”部分。 – zfm 2012-07-10 04:50:13

回答

0

嗯..,我觉得你不必在你的My_models.php添加

$this->load->database(); 

,表兄弟姐妹,因为我知道它会为你的database.php中设置自动连接到数据库文件。所以,从My_models.php文件中删除它&再试一次。

希望它能帮助:)

+0

没用......我把这两个选项作为选项,所以我在模型中添加了autoload或load-> database。 – zfm 2012-07-09 04:49:43

+0

因此,你尝试连接到1数据库与2数据库连接选项(自动和手动)?如果我没有弄错,如果你使用2个不同的数据库,你可以像pconnect设置为FALSE那样手动加载数据库。 – Yagi 2012-07-09 05:12:47

+0

不要为两个数据库走得太远,即使我无法连接到一个单一的数据库:) – zfm 2012-07-09 06:03:35

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,你是好去(保持记住MYSQL图书馆需要加载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 
+0

错误是我使用自动加载时发生的错误...请注意,这两个数字是选项,所以我使用了第一或第二个... – zfm 2012-07-09 06:02:58