Php 如何在Yii框架中从数据库中获取所有表名和列名

Php 如何在Yii框架中从数据库中获取所有表名和列名,php,yii,Php,Yii,我正在开发一个模块,我想在其中实现动态相关的下拉表和列名功能 获取所有表名并在下拉字段中显示,选择特定表后,我想在下拉字段中再次显示其所有列名 这些问题是: 1) 如何从数据库中获取所有表名 2) 以及如何从表中获取所有列名 我尝试了一些像这样的文章和论坛 但它不起作用 任何帮助都将不胜感激 谢谢使用CDbTableSchema类的一个实例非常简单: echo 'Name: ', $tbl->name, ' (raw: ', $tbl->rawName, ')'; echo 'Fie

我正在开发一个模块,我想在其中实现动态相关的下拉表和列名功能

获取所有表名并在下拉字段中显示,选择特定表后,我想在下拉字段中再次显示其所有列名

这些问题是:

1) 如何从数据库中获取所有表名

2) 以及如何从表中获取所有列名

我尝试了一些像这样的文章和论坛 但它不起作用

任何帮助都将不胜感激


谢谢

使用
CDbTableSchema
类的一个实例非常简单:

echo 'Name: ', $tbl->name, ' (raw: ', $tbl->rawName, ')';
echo 'Fields: ', implode(', ', $tbl->columnNames);
等等
要获取所有表,只需使用
CDbSchema

CDbSchema
类既有public
tableNames
属性(所有tbl名称的数组)又有
tables
属性,包含所有元数据。就这些,真的

要访问所有这些实例,以下代码就足够了:

$connection = Yii::app()->db;//get connection
$dbSchema = $connection->schema;
//or $connection->getSchema();
$tables = $dbSchema->getTables();//returns array of tbl schema's
foreach($tables as $tbl)
{
    echo $tbl->rawName, ':<br/>', implode(', ', $tbl->columnNames), '<br/>';
}
请花点时间,一切都在那里。我没有广泛地使用过
Yii
,老实说,我根本没有使用过它,但我只用了5分钟就解决了这个问题。看看这张照片!每个方法/类/属性都有一个指向相应文件中确切行的链接

在要求他人为您解决问题之前,请先做些努力。

从表中获取所有列名:

TableName::model()->getTableSchema()->getColumnNames();

它将返回一个数组,其中包含TableName的所有列名

获取所有列名和标签:

$fields=Tablename::attributeLabels();
foreach($fields as $key=>$value){
    echo "column name : ".$key." and label ".$value."<br/>";
}
$fields=Tablename::attributeLabels();
foreach($key=>$value的字段){
回显“列名:”.$key.”和标签“$value.”
; }

它将显示来自modal的所有字段名和标签值。…

要获得表和列的引用,我已将示例代码粘贴在下面,请访问该答案以获取更多解释

$connection = Yii::app()->db;//get connection
$dbSchema = $connection->schema;
//or $connection->getSchema();
$tables = $dbSchema->getTables();//returns array of tbl schema's
 foreach($tables as $tbl)
  {
    echo $tbl->rawName, ':<br/>', implode(', ', $tbl->columnNames), '<br/>';
  }
$connection=Yii::app()->db//取得联系
$dbSchema=$connection->schema;
//或$connection->getSchema();
$tables=$dbSchema->getTables()//返回tbl架构的
foreach(表为$tbl)
{
echo$tbl->rawName,“:
”,内爆(“,”,$tbl->columnNames),“
”; }
我怎样才能在下拉列表中显示所有表名?@Sky:像我一样阅读血腥手册。。。我只花了5分钟,但我已将我的发现添加到我的答案中。这将在Yi2 Tablename::model()->attributeLabels()中引发一个错误。只需删除model(),它应该与Tablename:attributeLabels()类似
$connection = Yii::app()->db;//get connection
$dbSchema = $connection->schema;
//or $connection->getSchema();
$tables = $dbSchema->getTables();//returns array of tbl schema's
 foreach($tables as $tbl)
  {
    echo $tbl->rawName, ':<br/>', implode(', ', $tbl->columnNames), '<br/>';
  }