4

CodeIgniterのデフォルトの抽出されたコードでデータベースライブラリをロードできません

1)autoload.php経由

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

2)内部コントローラー経由

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

また

$CI =& get_instance();
$CI->load->database();

エラーメッセージ:内部サーバーエラーが発生したため、ページを表示できません。

環境: CodeIgniter 2.1.3、IIS上のPHP 5.2.13(ISAPI)、MySQL(5.0.45-community-nt)、Plesk。

プレーンPHPで記述されたコードでデータベースにアクセスできることを確認しました。

このライブラリを削除するとすぐに、ページが表示されます。セッションなどの他のライブラリや、カスタムライブラリも読み込むことができます。私が欠けているアイデアはありますか?

これが私のデータベース構成設定です:

$active_record = TRUE;  

$db['default']['hostname'] = 'localhost';  
$db['default']['username'] = 'username';  
$db['default']['password'] = 'password';  
$db['default']['database'] = 'databasename';  
$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;
4

4 に答える 4

3

とにかくサーバーログを確認するか、config.phpでCIログを有効にすることができます

config.phpの206行目に移動します

/*
|--------------------------------------------------------------------------
| Error Logging Threshold
|--------------------------------------------------------------------------
|
| If you have enabled error logging, you can set an error threshold to
| determine what gets logged. Threshold options are:
| You can enable error logging by setting a threshold over zero. The
| threshold determines what gets logged. Threshold options are:
|
|   0 = Disables logging, Error logging TURNED OFF
|   1 = Error Messages (including PHP errors)
|   2 = Debug Messages
|   3 = Informational Messages
|   4 = All Messages
|
| For a live site you'll usually only enable Errors (1) to be logged otherwise
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 4;

値を4に設定し、フォルダに775 chmod /logsディレクトリがあるかどうかを確認します。ない場合、CIはそのディレクトリ内にログファイルを自動的に作成します。/applicationcreate that

この方法でCIエラーをチェックできます

ログファイルから報告したとおり

/configディレクトリの下のdatabase.php行50を変更します。

$db['default']['pconnect'] = TRUE;

$db['default']['pconnect'] = FALSE;
于 2012-12-26T23:25:54.797 に答える
2

OK、ログに基づいて、設定すると

$db['default']['pconnect'] = TRUE;

$db['default']['pconnect'] = FALSE;

データベースライブラリがロードされました。

于 2012-12-27T08:48:01.023 に答える
0

私はこれと同じ問題を抱えており、スタックトレースとmysqlログを掘り下げるトラブルシューティングに約5時間を費やしました。原因は無関係であることが判明しましたが、私が抱えていた問題を誰もが救うためにここに投稿しています。

VMを最初から構築しましたが、php5用のMySQLドライバーをインストールするのを忘れたようです。私が持っていた症状はまったく同じで、画面が空白で、まったく応答がありません。将来これを見ている人には、mysqlドライバーがあることを確認してください!! 30秒の修正。

于 2013-09-12T15:45:49.800 に答える
0

php5-mysqlがインストールされていないようです。EC2またはVMに、php5-mysqlをインストールすることを忘れないでください

sudo apt-get install php5-mysql

于 2014-02-09T14:07:05.310 に答える