当result == null时,Yii2从SQL命令获取列名

时间:2016-09-01 10:16:15

标签: mysql yii2

如果您收到以下代码:

  $DBConnection = 
    CreateNewDBConnection(Yii::$app->get('db_cdh'),$aDatabaseName);
    $DBConnection->open();
    $command = $DBConnection->createCommand($aQuery);
    $queryres = $command->queryAll();

如果查询有结果,我会得到一个数组,就像这样

Array
(
    [0] => Array
    (
        [name] => 2.6.084.545
        [xdim+2] => 70
    )

[1] => Array
    (
        [name] => 2.5.102.030
        [xdim+2] => 60
    )

[2] => Array
    (
        [name] => 2.5.141.560
        [xdim+2] => 80
    )

)

但是如果查询结果为空,我得到一个空数组。  怎么可能得到列名?

我之所以这样问,是因为我要求查询多个数据库而某些数据库有结果(1行或更多行),而不是。系统几乎可以工作,但网格视图仅解析第一行以查找要显示的列。因此,根据多个数据库中的顺序结果,网格视图是否显示列,具体取决于首先....

欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用yii\db\TableSchema获取列名,然后使用它们:

$columns = [];
if (empty($queryres)) {
    $columns = $DBConnection->getTableSchema('your_table_name')->getColumnNames();
}