0

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

如果我手动创建数据库,一切都很好。
如果数据库不存在,我将无能为力,并且出现以下错误:

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

文件名:core/Loader.php

行号:232

我正在关注dbutil 指南
我的代码:

    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' );
4

1 回答 1

1

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

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

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

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

或者,您可以从自动加载中删除数据库类并将其加载到所需的每个控制器上。然后,在您的安装程序控制器中,您可以根据文档使用 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;
  }
} 
于 2011-05-16T01:03:32.250 回答