3

CodeIgniterを使用したデータベースへの接続に問題があります。

モデルでは、私がするなら

$this->load->database();

次に、次のようなクエリ

$query = $this->db->get('articles', 10);

動作し、データを返します。ただし、load-> database行を削除して、データベースライブラリを自動ロードしようとすると、

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

application / config / autoload.phpでは、上記のクエリは失敗します。ライブラリを明示的にロードすると機能するため、データベース接続に問題はありません。CodeIgniter 2.0.2(現在の最新リリース)を使用しています。

私のページのほとんどはデータベースを使用しているので、各モデルでデータベースを毎年ロードする必要がないように、データベースを自動ロードしたいと思います。データベースライブラリのロードに関するドキュメントを誤解していませんか、それとも何か間違ったことをしていますか?

4

7 に答える 7

7

おそらく死んだ質問に答えているだけだと思いますが、同じ問題がありました。

eclipse pdt または同様の IDE を使用していて、コンストラクターの直前にいくつかの変数を追加して system>core>model.php を変更し、コード補完を取得した場合、オートロードは機能しません。

理由はわかりませんが、実際には機能しません。core>model.php を元の状態に戻し、オートロードが正常に動作するようになりました。私は今、オートロードを取得できません。CI の新しいコーダーにとっては本当に悪い経験です。

回避策がある場合は、そのようにコメントしてください。

于 2012-11-02T16:26:54.333 に答える
1

これは私の application/config/ ディレクトリの database.php です

$active_group = 'default';   
$active_record = TRUE;        
$db['default']['hostname'] = 'mydbhost';   
$db['default']['username'] = 'myusername';    
$db['default']['password'] = 'mypassword';    
$db['default']['database'] = 'mydatabase'; 
$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;

あなたがこのように見えることを確認し、http://codeigniter.com/user_guide/database/configuration.html でユーザー ガイドを再実行、config ディレクトリの autoload.php ファイルのコメントを読み直してください。

私の関連する行は次のとおりです。

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

次のように db ライブラリをロードする必要があります。

$this->load->library('database');

于 2011-04-19T14:33:44.993 に答える
0

私が考えることができる唯一のことは、あなたのapplication/config/database.phpファイルにあります.次の行はtrueではなくfalseに設定されています.

//['autoinit'] Whether or not to automatically initialize the database.
$db['default']['autoinit'] = TRUE;

他のすべては問題ないようです。

于 2011-04-19T14:23:51.023 に答える