0

アプリケーションでPHPActiveRecordを使用しています

データベースのすべてのテーブル名を一覧表示する方法

ここで私はデータベースの接続を以下のように構成しました

require_once ActiveRecordDIR.'/ActiveRecord.php';
ActiveRecord\Config::initialize(function($cfg){


    $cfg->set_model_directory('core/models');
    $cfg->set_connections(array('development' =>'mysql://root:pass@localhost/dbname'));
});

この後、データベース「dbname」内のすべてのテーブル名を一覧表示したいと思います。

4

3 に答える 3

3

このメソッドConnection::tables()は、データベース内のすべてのテーブルの配列を返します。次に、配列をforeachして、テーブル名を取得できます。

于 2013-02-25T12:31:10.800 に答える
2

Active Recordは、単一のテーブルの単一の行を表し、それにビジネスロジックを追加します。したがって、パターンにはユースケースがないため、ActiveRecordからデータベース内のすべてのテーブルをクエリする方法はありません。

ただし、そのフレームワークのドキュメントによると、使用できます

したがって、生のSQLを使用してすべてのテーブル名をフェッチします。そのためのSQLを知っていると思います。

方法もあります

  • Connection::query_for_tables()-現在のデータベース内のすべてのテーブルをクエリします。結果には、テーブルの名前を持つ列が1つだけ含まれている必要があります。

あなたがやろうとしていることをしているのかもしれません。

于 2013-02-25T12:22:53.847 に答える
1
YourModel::find_by_sql("SELECT `TABLE_NAME` FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA`=?",array('YOUR_DB_NAME'));
于 2013-02-25T12:23:42.537 に答える