6

アップグレード後に Codeigniter 2 から 3 のバージョンにすると、このエラーが発生します。なぜでしょうか?

キャッチされていない例外が発生しました

タイプ: 例外

メッセージ: 構成されたデータベース接続は永続的です。中止しています。

ファイル名: /var/www/vhosts/xxx.com/app/system/libraries/Session/drivers/Session_database_driver.php

ライン番号: 94

バックトレース:

ファイル: /var/www/vhosts/xxx.com/app/application/core/MY_Controller.php 行: 11 関数: __construct

ファイル: /var/www/vhosts/xxx.com/app/application/core/MY_Controller.php 行: 52 関数: __construct

ファイル: /var/www/vhosts/xxx.com/app/application/controllers/Dashboard.php 行: 7 関数: __construct

ファイル: /var/www/vhosts/xxx.com/application/index.php 行: 293 関数: require_once

4

4 に答える 4

19

私は同じ問題を抱えていましたが、設定を変更するだけの問題であることがわかりました。

database.php 構成ファイルを変更し、「pconnect」を false にします。CI 3 フレームワークの一部として、次の配列の一部になります。

$db['default'] = array(
    'pconnect' => FALSE // This value
);

または、構成ファイルが CI 2 バージョンに似ている場合:

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

少し検索すると、セキュリティ上の理由から、データベースが永続的な接続を好まないことが示唆されているようです。

于 2015-04-07T19:38:29.617 に答える
2

database.php ファイルでキャッシュを無効にし、database.php でキャッシュ フォルダーを定義します。

'cachedir' => APPPATH.'cache/db/',

設定して使用するだけ

$this->db->cache_on(); 

データベースクエリをキャッシュするコマンド。

使用することを忘れないでください

$this->db->cache_off();

キャッシュされた不要な結果のクエリを選択した後。

于 2015-10-11T11:28:04.077 に答える
0

引用符なしで FALSE を指定する必要があります。'FALSE' を使用すると、データベース ドライバはそれを真のブール値と見なします。システムは、引用符なしで FALSE を直接使用することを想定しています。したがって、デフォルトで FALSE にするために「FALSE」を使用する代わりに pconnect の設定を解除するか、順序を維持したい場合は値として FALSE を使用してください:)

 * Persistent connection flag
 *
 * @var bool
 */
public $pconnect        = FALSE;
于 2017-06-05T18:42:29.770 に答える