Php CodeIgniter无法手动或自动加载数据库库;对非对象调用成员函数get()
我无法在我的模型或autoload.php中手动正确加载数据库库 行$query=$this->db->get('videos');针对指示未加载数据库库的非对象错误生成对成员函数get()的调用 我尝试使用下面模型的构造函数中注释掉的两行来加载数据库库,但这两行都返回错误。如果我取消对$this->load->database的注释,我将得到一个对非对象错误的成员函数database()的调用 如果我取消对$this->load->library('database')的注释,我将得到对非对象错误的成员函数library()的调用 我还在配置文件中设置了自动加载Php CodeIgniter无法手动或自动加载数据库库;对非对象调用成员函数get(),php,mysql,database,phpmyadmin,codeigniter-2,Php,Mysql,Database,Phpmyadmin,Codeigniter 2,我无法在我的模型或autoload.php中手动正确加载数据库库 行$query=$this->db->get('videos');针对指示未加载数据库库的非对象错误生成对成员函数get()的调用 我尝试使用下面模型的构造函数中注释掉的两行来加载数据库库,但这两行都返回错误。如果我取消对$this->load->database的注释,我将得到一个对非对象错误的成员函数database()的调用 如果我取消对$this->load->library('database')的注释,我将得到对非对象
$autoload['libraries'] = array('database');
在我的CI日志文件中,数据库驱动程序被指示为已初始化
调试-2013-05-09 15:31:17-->数据库驱动程序类已初始化
这是我的数据库配置
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'dbusername';
$db['default']['password'] = 'dbpassword';
$db['default']['database'] = 'dbname';
$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中的CI 2.1.3以及aptana studio 3插件、phpMyAdmin 3.5.8.1和Apache服务器2.2
更新:
我已经确认,从控制器而不是模型访问数据库是可行的 找到了答案
我使用本教程在Eclipse中实现了自动完成(链接404'd)
一旦我删除了controller.php中的额外代码,模型中的model.php数据库访问就恢复了
这里有一个更好的教程,介绍如何在eclipse中使用autocomplete(阅读注释,了解如何在模型和控制器中使用autocomplete) 我看不出你的数据库配置有任何问题。我能看到的唯一一件事是,你在控制器中引用的模型都是小写的。CI文档说明模型类应该以大写字母开头,并且也应该以这种方式引用它们。($this->load->model('Videos\u model')/$this->Videos\u model->get\u Videos();)。这是否会产生影响,我不知道。@MichaelO'Brien its似乎使用小写引用,但我将其更改为更符合约定。第一个链接是404。我将尝试第二个链接。
$autoload['libraries'] = array('database');
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'dbusername';
$db['default']['password'] = 'dbpassword';
$db['default']['database'] = 'dbname';
$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;