0

我的数据没有插入到生产站点的数据库中,而它在我的本地测试站点上工作正常。我的 codeigniter 配置是正确的。如果我在数据库中手动执行查询,它会显示正确的消息并且数据被插入到数据库中。*)当我打印查询时,它也符合预期。

我认为这是服务器配置问题。我正在使用 go daddy 和 mysql。

数据库配置:

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'etc';
$db['default']['password'] = 'etc';
$db['default']['database'] = 'ieshopif_y';
$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;

*) 手动执行查询后,我收到此成功消息:

Connecting to database: ieshopif_y
Connected OK:file: /home/ieshopif/public_html/application/config/database.php Line: 82

如果是数据库问题,我想知道如何配置数据库以使其工作。

4

1 回答 1

2

这些选项在生产、开发和测试中可能不同:

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'etc';
$db['default']['password'] = 'etc';
$db['default']['database'] = 'ieshopif_y';

我建议您将其与 index.php 上定义的 ENVIRONMENT 常量分开,因为hostname在生产服务器中可能会有所不同。尝试这个:

if (defined('ENVIRONMENT')) {
  switch (ENVIRONMENT) {
    case 'development':
      $db['default']['hostname'] = 'localhost';
      $db['default']['username'] = 'username';
      $db['default']['password'] = 'password';
      $db['default']['database'] = 'ieshopif_y';
      break;

    case 'testing':
    case 'production':
      $db['default']['hostname'] = 'domain.com';
      $db['default']['username'] = 'root';
      $db['default']['password'] = 'secure_pass';
      $db['default']['database'] = 'ieshopif_y';
      break;

    default:
      exit('The application environment is not set correctly.');
  }
}
于 2013-07-26T19:39:06.237 回答