1

我有一个在灯中工作但在 wamp 中工作的 codeigniter Web 应用程序。当我尝试访问该站点时,它会出现以下错误

 Unable to connect to your database server using the provided settings.

 Filename: E:\wamp\www\CI\system\database\DB_driver.php

 Line Number: 114

我在我的应用程序中使用了 mysql 和 sqlite。

数据库.php

  $active_group = 'default';
  $active_record = TRUE;

  $db['login']['hostname'] = 'localhost';
  $db['login']['username'] = 'root';
  $db['login']['password'] = '';
  $db['login']['database'] = 'login';
  $db['login']['dbdriver'] = 'mysql';
  $db['login']['dbprefix'] = '';
  $db['login']['pconnect'] = TRUE;
  $db['login']['db_debug'] = TRUE;
  $db['login']['cache_on'] = FALSE;
  $db['login']['cachedir'] = '';
  $db['login']['char_set'] = 'utf8';
  $db['login']['dbcollat'] = 'utf8_general_ci';
  $db['login']['swap_pre'] = '';
  $db['login']['autoinit'] = TRUE;
  $db['login']['stricton'] = FALSE;

  $db['pm']['hostname'] = 'localhost';
  $db['pm']['username'] = 'root';
  $db['pm']['password'] = '';
  $db['pm']['database'] = 'password_manager';
  $db['pm']['dbdriver'] = 'mysql';
  $db['pm']['dbprefix'] = '';
  $db['pm']['pconnect'] = TRUE;
  $db['pm']['db_debug'] = TRUE;
  $db['pm']['cache_on'] = FALSE;
  $db['pm']['cachedir'] = '';
  $db['pm']['char_set'] = 'utf8';
  $db['pm']['dbcollat'] = 'utf8_general_ci';
  $db['pm']['swap_pre'] = '';
  $db['pm']['autoinit'] = TRUE;
  $db['pm']['stricton'] = FALSE;

  $db['user']['hostname'] = 'localhost';
  $db['user']['username'] = 'root';
  $db['user']['password'] = '';
  $db['user']['database'] = 'user_info';
  $db['user']['dbdriver'] = 'mysql';
  $db['user']['dbprefix'] = '';
  $db['user']['pconnect'] = TRUE;
  $db['user']['db_debug'] = TRUE;
  $db['user']['cache_on'] = FALSE;
  $db['user']['cachedir'] = '';
  $db['user']['char_set'] = 'utf8';
  $db['user']['dbcollat'] = 'utf8_general_ci';
  $db['user']['swap_pre'] = '';
  $db['user']['autoinit'] = TRUE;
  $db['user']['stricton'] = FALSE;

  $db['transaction']['hostname'] = 'localhost';
  $db['transaction']['username'] = 'root';
  $db['transaction']['password'] = '';
  $db['transaction']['database'] = 'user_transactions';
  $db['transaction']['dbdriver'] = 'mysql';
  $db['transaction']['dbprefix'] = '';
  $db['transaction']['pconnect'] = TRUE;
  $db['transaction']['db_debug'] = TRUE;
  $db['transaction']['cache_on'] = FALSE;
  $db['transaction']['cachedir'] = '';
  $db['transaction']['char_set'] = 'utf8';
  $db['transaction']['dbcollat'] = 'utf8_general_ci';
  $db['transaction']['swap_pre'] = '';
  $db['transaction']['autoinit'] = TRUE;
  $db['transaction']['stricton'] = FALSE;

SQLITE PDO

class CI_Appdb {

    var $conDb;

    public function __construct($userId = NULL) {
        $this->db($userId['user_id']);
    }

    public function close() {
        $this->conDb->close();
    }

    private function db($userId) {
        if ($userId) {
            $this->conDb = new PDO("sqlite:" . BASEPATH . "sqlitedb/" . $userId . "/app_data.db");
        }
    }

    public function query($query) {
        return $this->conDb->query($query);
    }

}
4

2 回答 2

2

You have defined the $active_group = 'default' But there is no default group in your DB settings.

于 2013-10-28T15:41:35.030 回答
0

Because you have: $active_group = 'default'; set, you need to add:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "database_name";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$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;

Or specify: $active_group = 'login';

$active_group = 'user';

$active_group = 'pm';

$active_group = 'transaction';

于 2013-10-28T15:49:08.797 回答