2
$result = mysql_query("show columns from mash");
for ($i = 0; $i < mysql_num_rows($result); $i++) {
    $colArray[$i] = mysql_fetch_assoc($result);
    $fieldArray[$i] = $colArray[$i]['Field'];
}
fputcsv($fp,$fieldArray);

获取 mysql 列名,然后将它们输出到创建的 CSV 的顶部。

但是,我知道列名将是什么,如何更改它们以用于 CSV 中的输出?

IE。如果显示列输出:id、field1、field2、field3,我如何制作这些 ID、Field 1、Field 2、Field 3。不仅要大写,还要选择它们将要成为的...

4

1 回答 1

1

您必须有一个列到标签的列表,这将使脚本特定于数据库:

$labels = array(
  'col_name'=>'Column 1',
  'id'=>'User ID'
); // and so on

$result = mysql_query("show columns from mash");
for ($i = 0; $i < mysql_num_rows($result); $i++) {
    $colArray[$i] = mysql_fetch_assoc($result);
    $fieldArray[$i] = $labels[$colArray[$i]['Field']];
}
fputcsv($fp,$fieldArray);

或者,您必须使用这种元数据创建一个数据库。它可以有三个字段:source_table、source_column、column_label。这增加了另一个查询,但允许将代码设为通用。

最后一种方法是使用一些带有分隔符的简单命名约定,例如下划线 (_),然后删除下划线并应用标题大小写。field_1 变为“字段 1”,“user_id”变为“用户 ID”,依此类推。

$result = mysql_query("show columns from mash");
for ($i = 0; $i < mysql_num_rows($result); $i++) {
    $colArray[$i] = mysql_fetch_assoc($result);
    $fieldArray[$i] = _title_case_function_(str_replace('_', ' ', $colArray[$i]['Field']]));
}
fputcsv($fp,$fieldArray);
于 2011-02-14T16:19:34.550 回答