2012-11-29 116 views
0

我正在开发codeigniter项目。我在本地使用wampserver开发它,但我想用xampp进行一些更改。它在远程站点上工作正常。不幸的是,当我尝试运行在本地我越来越:xampp错误:未连接到数据库服务器,使用codeigniter

A Database Error Occurred 
Unable to connect to your database server using the provided settings. 
Filename: F:\xampp-portable\htdocs\....\database\DB_driver.php 
Line Number: 124 

我的index.php文件,我已经加入:

mysql_connect("localhost","root","") or die ("Could not connect to mysql server."); 
mysql_select_db("contacts_db") or die ("Could not connect to database."); 

这不会产生错误。任何人都可以给我一些关于接下来要检查的指示吗?

由于提前,

比尔

OK家伙,这里是围绕线124代码:

function initialize() 
{ 
    // If an existing connection resource is available 
    // there is no need to connect and select the database 
    if (is_resource($this->conn_id) OR is_object($this->conn_id)) 
    { 
     return TRUE; 
    } 

    // ---------------------------------------------------------------- 

    // Connect to the database and set the connection ID 
    $this->conn_id = ($this->pconnect == FALSE) ? $this->db_connect() : $this-  >db_pconnect(); 

    // No connection resource? Throw an error 
    if (! $this->conn_id) 
    { 
     log_message('error', 'Unable to connect to the database'); // 124 

     if ($this->db_debug) 
     { 
      $this->display_error('db_unable_to_connect'); 
     } 
     return FALSE; 
    } 

约翰是正确的,虽然我现在困惑。我已经建立了下面的代码在我的index.php到XAMPP和服务器数据库配置文件之间自动切换:

define('ENVIRONMENT', isset($_SERVER['SERVER_NAME'])=='my_domain_name.com' ? 'production' : 'development'); 

    echo 'SERVER_NAME '.$_SERVER['SERVER_NAME']; // getting localhost 
    echo 'env '.ENVIRONMENT; // getting production. 

我认为这将导致环境不断设置为“发展”与$ _ SERVER ['SERVER_NAME “] =本地。有人会介意解释我在这里做错了吗?

+0

错误是走出DB_Driver.php的 - 你能为我们提供在该行号的代码 - 我认为这是建立连接其他人,但没有某处指数。 PHP。 – Alex2php

+0

添加您输出错误的配置项的代码 –

+1

uhhhhh您是否在配置文件中设置了您的数据库密码和用户名,或者是否将其移至新服务器后进行了更改?密码真的是一样的吗?我不认为它会成为本地主机作为两个用户名... – Rooster

回答

3

请检查您的config/database.php文件,因为我知道codeigniter中的配置数据库位于此文件中。你需要注意的一些值是:

$db['default']['hostname'] = ''; 
$db['default']['username'] = ''; 
$db['default']['password'] = ''; 
$db['default']['database'] = ''; 
+0

作为唯一的答案,我投票给你。你是正确的,因为我的环境设置代码(上面列出)是错误的,并导致在我的本地环境中选择错误的数据库配置文件。我改变它以定义('ENVIRONMENT',isset($ _ SERVER ['SERVER_NAME'])=='my_domain_name.com'''production':'development');问候 - 条例草案 – user61629

+0

嗯,我只是认为你可能会错过这个设置,因为你创建自己的连接到数据库和CI的连接默认加载其设置,以及可能会导致冲突。不过很高兴我可以帮你:) – SubRed