我需要一种通过 PHP 将 MYSQL 数据库导出到 CSV 的方法,但我还需要选择列名称。到目前为止,我有以下内容,除了获取列名称之外,它可以完成我需要的一切。
echo "Export Starting n";
$SQL = ("SELECT *
FROM INF_TimeEntries
WHERE Exported IS NULL");
$result = mysqli_query($db_conn, $SQL) or die("Selection Error " . mysqli_error($db_conn));
echo "Export Data Selected n";
$fp = fopen('../updateDatabase/timesheetExport/TimeEntries.csv', 'w');
echo "Starting Write to CSV n";
while($row = mysqli_fetch_assoc($result)){
fputcsv($fp, $row);
$RowID = $row['ID'];
$exportTime = date("Y-m-d H:i:s");
$sql = ("UPDATE INF_TimeEntries
SET Exported = '$exportTime'
WHERE ID = '$RowID'");
if ($mysqli_app->query($sql) === TRUE) {
}
else {
echo date("Y-m-d H:i:s")."n";
echo "An Error Occured please contact the administrator ". $mysqli_app->error."n";
}
}
echo "Export Completed n";
fclose($fp);
mysqli_close($mysqli_app);
mysqli_close($db_conn);
我不确定我将如何实现这一目标。我不仅需要获取列名称,还需要获取列名称和每列中包含的数据。我在建议的其他问题中没有找到任何相关信息。
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
由于您使用的是
mysqli_fetch_assoc,因此列的名称是每次迭代中$row数组的键。您可以在第一次迭代中将其放入文件中:echo "Starting Write to CSV \n"; $first = true; while($row = mysqli_fetch_assoc($result)){ if ($first) { fputcsv($fp, array_keys($row)); $first = false; } fputcsv($fp, $row); // .. }