CodeIgniter - 从Localhost

时间:2017-04-09 03:19:14

标签: php mysql codeigniter

我对开发还很陌生,而且我对codeigniter完全陌生。

我从我公司的服务器上下载了一个CodeIgniter项目,该项目是我从之前的开发人员那里继承的。

我需要在网站上添加新页面。由于我是CI的新手,我(显然)不想编辑实际网站,但我无法让网站在本地运行。我尝试在运行Yosemite 10.10.5的Mac上通过MAMP或终端中的PHP服务器在本地服务器上运行它。

我已将项目文件夹添加到MAMP中的htdocs但是当我打开http://localhost:8888/index.php/contact时,屏幕显示为空白。当我尝试使用以下方法通过终端访问同一文件夹时:

env DB_USER=XXXX DB_PASSWD=XXXX DB_NAME=XXXX php -S localhost:8080

(其中' XXXX'被我们的数据库用户名和密码替换)

我收到以下错误:

  

无法使用提供的设置连接到数据库服务器。

     

文件名:core / Loader.php

     

行号:346

core/Loader.php的第346行是附加图片中的public function database

我尝试过的事情:

  

•我们已尝试将$config['base_url']更改为'http://localhost:8888/';,但我仍然遇到同样的错误

     

•从database.php文件中删除主机名,用户名和密码仍会出现同样的错误

我不确定当实际网站可以使用相同的登录凭据时,本地版本为什么无法访问数据库?我刚开始这个新职位时,非常感谢任何帮助,这是我公司的第一个项目之一,让我感到难过。我仍然需要弄清楚如何添加页面,但我甚至无法在本地加载网站,因此我可以继续使用它。

更新

这是我的database.php文件的样子......它没有设置为数组:

/* The $active_group variable lets you choose which connection group to make active. By default there is only one group (the 'default' group). The $active_record variables lets you determine whether or not to load the active record class */

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

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'database_name'; // contains actual name
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$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;

** 链接到我的视频(尝试)解释此问题: **

链接#1:CodeIgniter Database Error Issue YouTube

感谢您的帮助!

core/loader.php

3 个答案:

答案 0 :(得分:2)

配置文件位于application/config/database.php

$db['default'] = array(
        'dsn'   => '',
        'hostname' => 'localhost',  // pass this
        'username' => 'root',  // pass this
        'password' => '',  // pass this
        'database' => 'database_name',  // pass this
        'dbdriver' => 'mysqli',
        'dbprefix' => '',
        'pconnect' => TRUE,
        'db_debug' => TRUE,
        'cache_on' => FALSE,
        'cachedir' => '',
        'char_set' => 'utf8',
        'dbcollat' => 'utf8_general_ci',
        'swap_pre' => '',
        'encrypt' => FALSE,
        'compress' => FALSE,
        'stricton' => FALSE,
        'failover' => array()
);

只需传递我提及// pass this的参数,然后重试。

答案 1 :(得分:1)

确保root在localhost中具有登录权限。有些MySQL实例对这些事情非常严格。

答案 2 :(得分:1)

如果您正在运行它MAMP(Mac版)您的mysql默认密码是“root”

所以数据库配置文件看起来像

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

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'root';
$db['default']['database'] = 'database_name'; // contains actual name
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$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;

更新了$db['default']['password'] = 'root';