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 に答える