【问题标题】:Change mysql column names for use with FPutCSV()更改 mysql 列名以与 FPutCSV() 一起使用
【发布时间】:2011-02-14 16:14:45
【问题描述】:
$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 中的输出?

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

【问题讨论】:

    标签: php mysql fputcsv


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      • 2012-02-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 2013-01-18
      • 2012-01-05
      相关资源
      最近更新 更多