CodeIgniter dbutil - 创建数据库时遇到问题

时间:2011-05-13 18:43:26

标签: database codeigniter codeigniter-2 codeigniter-datamapper

尝试为我的应用程序进行设置。但是,我无法让它为我创建数据库。

如果我手动创建数据库,一切都很好。
如果数据库不在那里,我什么也做不了,我得到以下错误:

  

发生数据库错误   无法选择指定的数据库:my_db

     

文件名:core / Loader.php

     

行号:232

我正在关注dbutil guide
我的代码:

    function index()
    {
      $db_exists = FALSE;
      $this->load->dbutil();
      if(  $this->dbutil->database_exists( 'my_db' ) ){
        $db_exists = TRUE;
      }
    } 

根据指南,我在application / config / autoload.php

中运行我的数据库驱动程序
$autoload['libraries'] = array( 'database', 'datamapper' );

1 个答案:

答案 0 :(得分:1)

您的数据库是否已在database.php配置文件中指定?

您可能需要做的是设置连接设置并将数据库名称留空

$db['default']['database'] = '';

然后你仍然可以自动加载数据库类,然后加载dbutil类来检查它。检查和/或创建后,您需要在database.php config中重新设置数据库名称。

或者,您可以从自动加载中删除数据库类并将其加载到所需的每个控制器上。然后,在安装程序控制器中,您可以根据文档使用DSN或$ config数组加载它而不使用数据库名称:http://www.codeignitor.com/user_guide/database/connecting.html

function index()
{
  $dsn = 'mysql://myuser:mypass@localhost';
  $this->load->database($dsn);
  $this->load->dbutil();
  $db_exists = FALSE;
  $this->load->dbutil();
  if(  $this->dbutil->database_exists( 'my_db' ) ){
    $db_exists = TRUE;
  }
}