如果您得到以下代码:
$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 行或多行),而其他则没有。系统几乎可以工作,但 GridView 仅解析第一行以查找要显示的列。因此,根据跨多个数据库的顺序结果, GridView 是否显示列,取决于先出现的内容......
欢迎任何帮助。
最佳答案
您可以使用 yii\db\TableSchema 获取列名称然后使用它们:
$columns = [];
if (empty($queryres)) {
$columns = $DBConnection->getTableSchema('your_table_name')->getColumnNames();
}
关于mysql - 当结果== null时,Yii2从SQL命令获取列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39268824/