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.
一旦從mysqli_query()
方法設(shè)置了$result
,您就可以使用mysqli_fetch_fields()
返回結(jié)果集中各列的描述數(shù)組。
該數(shù)組的每個(gè)元素都是一個(gè)具有多個(gè)屬性的對(duì)象。其中一個(gè)屬性是name
——您可以將其用作 csv 文件的標(biāo)題。您還可以獲得 max_length
、length
和 table
等屬性。 鏈接文檔顯示了使用此元數(shù)據(jù)的示例。 p>
如果您的查詢比SELECT * FROM table
更復(fù)雜,則此元數(shù)據(jù)特別有用:如果您為查詢中的列分配別名,它們會(huì)顯示在名稱
中code> 元數(shù)據(jù)數(shù)組元素的屬性。
即使結(jié)果集中沒有行,這也有效。
由于您使用的是 mysqli_fetch_assoc
,因此列的名稱是每次迭代中 $row
數(shù)組的鍵。您可以在第一次迭代中將其放入文件中:
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); // .. }