mysql_field_name 等效 pdo

Zar*_*qar 2 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();
Run Code Online (Sandbox Code Playgroud)

和数据类中的column_name函数。管理数据类继承数据类。请参阅列名函数。

function column_name($result) {
    $row=$this->stmt->getColumnMeta($result);
    return $row;
}
Run Code Online (Sandbox Code Playgroud)

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

ant*_*rte 5

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;
}
Run Code Online (Sandbox Code Playgroud)

现在无法测试,但我认为它会提供一些想法。希望能帮助到你,