mysql_field_name等效于pdo

时间:2015-07-13 01:34:34

标签: php mysql pdo

我想将我的代码从mysql升级到pdo。当我将mysql_name_field更改为等效的pdo时。我坚持了下来。检查我的旧代码。

这是在管理数据类中:

$result=$this->query($query);
$x=$this->cols_count($result);
$heading[]=$this->column_name($result);
print_r($heading);die();
数据类中的

和column_name函数。管理数据类继承数据类。请参阅列名称功能。

function column_name($result) {
    $row=$this->stmt->getColumnMeta($result);
    return $row;
}

它只返回一个列名,而我想要表中的所有列名。

1 个答案:

答案 0 :(得分:3)

getColumnMeta()返回结果集中列的元数据(结果中的0索引列)。另外,从文档:

警告 这个功能是实验性的。在将来的PHP版本中,此函数,其名称和周围文档的行为可能会更改,恕不另行通知。使用此功能需要您自担风险。

警告 并非所有PDO驱动程序都支持PDOStatement :: getColumnMeta()

是什么让它不是一个非常好的方法。相反,您可以使用查询" SHOW COLUMNS from table"并检索所有列信息。或者,如果您仍想使用getColumnMeta()

function column_name() {
   $results = $this->query('SELECT * FROM table LIMIT 0');
   for ($i = 0; $i < $results->columnCount(); $i++) {
      $col = $results->getColumnMeta($i);
      $columns[] = $col['name'];
   }
   return columns;
}

现在无法测试,但我认为它会给出一些想法。希望它有所帮助,