Yii:从动态查询中获取列名

时间:2014-08-08 09:54:12

标签: sql sql-server yii dynamic-sql csqldataprovider

是否可以执行查询并获取返回结果集的列名。 我需要列名,因为查询是动态的,我不知道列的名称。

我会在再次执行查询时使用这些列名进行排序。

你可以参考我的Previous question来了解我为什么需要它。

感谢。

1 个答案:

答案 0 :(得分:0)

根据正在使用的PDO驱动程序,一旦执行了语句,便可以从PDOStatement::getColumnMeta获取列名。

这是可以在 Yii 1.1 中完成的一种方法:

$command = Yii::app()->{db}
  ->createCommand('SELECT "." `Stop!`, current_time `Hammer Time`');
$reader = $command->query();

$sth = $command->getPdoStatement();
for ($i = 0; $i < $sth->columnCount(); $i++) {
  $col = $sth->getColumnMeta($i);
  print $col['name'].' ';
}