我想将我的代码从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;
}
它只返回一个列名,而我想要表中的所有列名。
答案 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;
}
现在无法测试,但我认为它会给出一些想法。希望它有所帮助,