1

DB を作成した後、「提供された設定を使用してデータベース サーバーに接続できません」というエラーが発生しました。

ここにコードがあります....

 * Database Loader

public function database($params = '', $return = FALSE, $active_record = NULL)
{
    // Grab the super object
    $CI =& get_instance();

    // Do we even need to load the database class?
    if (class_exists('CI_DB') AND $return == FALSE AND $active_record == NULL AND isset($CI->db) AND is_object($CI->db))
    {
        return FALSE;
    }

    require_once(BASEPATH.'database/DB.php');

    if ($return === TRUE)
    {
        return DB($params, $active_record);
    }

    // Initialize the db variable.  Needed to prevent
    // reference errors with some configurations
    $CI->db = '';

    // Load the DB class
    $CI->db =& DB($params, $active_record);

}
4

2 に答える 2

0

これは実際にはコードとは何の関係もありません。アプリケーションは、提供されたデータベース設定(ホスト、ユーザー名、およびパスワード)を使用してデータベースに接続できません。正しい名前のデータベースがあり、そのデータベースへのアクセス権限を持つデータベースユーザーが設定されていることを確認してください。設定ファイルは通常、にありますapplication/config/database.php

于 2013-03-19T03:06:14.160 に答える
0

私はついに解決策を見つけました。あなたが抱えているのと同じ問題だと思います。サーバーにあるphpのバージョンが原因です。私の場合、ローカルホストにphp 5.3.5がありますが、サーバーにはPHP 5.2.6 を持っていたので、それ以上は進めませんでしたが、主な問題は、関数が正しく動作しない場合の通知を回避することでした。具体的には、「mysql_driver.php」の 150 行目です。

return @mysql_set_charset($charset, $this->conn_id);

「@」を削除して、実際の問題を確認してください。問題がどこにあるかが最終的にわかるまで、スクリプトの各特定の部分を停止して、これを見つけました。これを解決するには、「$this->use_set_names」を true に設定して、指摘した行の近くで if 条件を使用できるようにします。問題がこれではなく、おそらく似たようなものである場合は、スクリプトの各部分をテスト (デバッグ) できます。

于 2013-07-10T05:57:24.750 に答える