モデルまたは autoload.php でデータベース ライブラリを手動で正しくロードできません
行$query = $this->db->get('videos'); データベース ライブラリがロードされていないことを示す非オブジェクト エラーでメンバー関数 get()の呼び出しを生成します。
以下のモデルのコンストラクターでコメントアウトされた 2 行を使用してデータベース ライブラリをロードしようとしましたが、どちらもエラーを返します。$this->load->database のコメントを外すと、非オブジェクトエラーでCall to member function database()が発生します。
$this->load->library('database') のコメントを外すと、オブジェクト以外のエラーでCall to member function library()が発生します
<?php
class Videos_model extends CI_Model {
public function __construct()
{
parent::__construct();
//$this->load->database();
//$this->load->library('database');
}
public function get_videos()
{
$query = $this->db->get('videos');
}
}
同じ行$this->load->database(); コントローラーではエラーは発生しませんが、get() 関数エラーが発生します。
class Videos extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->helper(array('url'));
$this->load->database();
//$this->load->library('database');
$this->load->model('videos_model');
$this->videos_model->get_videos();
}
}
また、構成ファイルに自動ロードを設定しました。
$autoload['libraries'] = array('database');
私の CI ログ ファイルでは、データベース ドライバが初期化されていることが示されています DEBUG - 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;
aptana studio 3プラグインとphpMyAdmin 3.5.8.1およびApache Server 2.2を使用して、EclipseでCI 2.1.3を使用しています
更新: データベースへのアクセスはコントローラーからは機能しますが、モデルからは機能しないことを確認しました。