Rumah > Soal Jawab > teks badan
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粉9498488492023-11-05 20:48:37
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_length
、length
和 table
. 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粉0020233262023-11-05 09:24:13
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); // .. }