Codeigniter:无法连接数据库,服务器错误

时间:2013-10-28 10:39:13

标签: php mysql sqlite codeigniter pdo

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

 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。

database.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);
    }

}

2 个答案:

答案 0 :(得分:2)

您已定义$active_group = 'default'但您的数据库设置中没有默认组。

答案 1 :(得分:0)

因为您设置了$active_group = 'default';,所以需要添加:

$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;

或指定: $active_group = 'login';

$active_group = 'user';

$active_group = 'pm';

$active_group = 'transaction';