php - 更改 mysql 列名称以与 FPutCSV() 一起使用

标签 php mysql fputcsv

$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。不仅要大写,还要选择它们将成为什么......

最佳答案

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

$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);

关于php - 更改 mysql 列名称以与 FPutCSV() 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4994422/

相关文章:

php - 如何使用 mongodb 和 php 上传用户特定的图像

php - PHP/MySQL 中的即时获胜程序 - 如何确保只选择一名获胜者?

php - 如何从 php 中的 csv 文件中删除特定行?

php - PHP 中的 fputcsv() 不包含逗号

php - 如何在 php 中发送 cookie 值的正确翻译

php - 如何检查bean是否相关

php - 如何在 session 期间配置 Symfony2 粘性语言环境

mysql - 从同一个表到具有相似标识符的单行的多行

mysql - 使用bundler来要求dll和gem

php - 使用 fputcsv 导出 mysql 查询数组