$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,字段1,字段2,字段3.不仅仅是大写,而是选择它们将会是什么......
答案 0 :(得分: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变为“Field 1”,“user_id”变为“User 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);