Erhalten Sie Spaltennamen und Daten für den CSV-Export (MYSQL) mit PHP
P粉579008412
P粉579008412 2023-11-04 21:59:58
0
2
772

Ich brauche eine Möglichkeit, eine MYSQL-Datenbank über PHP in CSV zu exportieren, aber ich muss auch die Spaltennamen auswählen. Bisher habe ich Folgendes, das alles tut, was ich brauche, außer die Spaltennamen abzurufen.

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

Ich bin mir nicht sicher, wie ich das erreichen werde. Ich muss nicht nur die Spaltennamen abrufen, sondern auch die Spaltennamen und die in jeder Spalte enthaltenen Daten. In den anderen vorgeschlagenen Fragen habe ich keine relevanten Informationen gefunden.

P粉579008412
P粉579008412

Antworte allen(2)
P粉949848849

一旦从mysqli_query()方法设置了$result,您就可以使用mysqli_fetch_fields() 返回结果集中各列的描述数组。

该数组的每个元素都是一个具有多个属性的对象。其中一个属性是name——您可以将其用作 csv 文件的标题。您还可以获得 max_lengthlengthtable 等属性。 链接文档显示了使用此元数据的示例。 p>

如果您的查询比SELECT * FROM table更复杂,则此元数据特别有用:如果您为查询中的列分配别名,它们会显示在名称中code> 元数据数组元素的属性。

即使结果集中没有行,这也有效。

P粉002023326

由于您使用的是 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);
    // ..
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage