Dapatkan nama lajur dan data untuk eksport CSV (MYSQL) menggunakan PHP
P粉579008412
P粉579008412 2023-11-04 21:59:58
0
2
767

Saya memerlukan cara untuk mengeksport pangkalan data MYSQL ke CSV melalui PHP, tetapi saya juga perlu memilih nama lajur. Setakat ini saya mempunyai yang berikut, yang melakukan semua yang saya perlukan kecuali mendapatkan nama lajur.

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

Saya tidak pasti bagaimana saya akan mencapai ini. Saya perlu mendapatkan bukan sahaja nama lajur, tetapi juga nama lajur dan data yang terkandung dalam setiap lajur. Saya tidak menemui sebarang maklumat yang berkaitan dalam soalan lain yang dicadangkan.

P粉579008412
P粉579008412

membalas semua(2)
P粉949848849

Setelah dikembalikan daripada mysqli_query()方法设置了$result,您就可以使用mysqli_fetch_fields() tatasusunan yang menerangkan setiap lajur dalam set hasil.

Setiap elemen tatasusunan ini ialah objek dengan berbilang sifat. Salah satu sifat adalah sifat seperti name——您可以将其用作 csv 文件的标题。您还可以获得 max_lengthlengthtable. Dokumentasi yang dipautkan menunjukkan contoh penggunaan metadata ini. p>

Jika pertanyaan anda lebih kecil daripada atribut SELECT * FROM table更复杂,则此元数据特别有用:如果您为查询中的列分配别名,它们会显示在名称kod> elemen tatasusunan metadata.

Ini berfungsi walaupun tiada baris dalam set hasil.

P粉002023326

Memandangkan anda menggunakan mysqli_fetch_assoc,因此列的名称是每次迭代中 $row kekunci tatasusunan. Anda boleh meletakkan ini ke dalam fail pada lelaran pertama:

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);
    // ..
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan