数据未插入生产站点的数据库中

时间:2013-07-26 18:18:15

标签: php mysql linux codeigniter

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

我认为这是服务器配置问题。我正在使用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

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

1 个答案:

答案 0 :(得分:2)

这些选项在生产,开发和测试方面可能有所不同:

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

我建议你将它与index.php上定义的环境常量分开,因为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.');
  }
}