J'ai besoin d'un moyen d'exporter une base de données MYSQL vers CSV via PHP, mais je dois également sélectionner les noms de colonnes. Jusqu'à présent, j'ai ce qui suit, qui fait tout ce dont j'ai besoin, sauf obtenir les noms de colonnes.
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);
Je ne sais pas comment je vais y parvenir. J'ai besoin d'obtenir non seulement les noms des colonnes, mais également les noms des colonnes et les données contenues dans chaque colonne. Je n'ai trouvé aucune information pertinente dans les autres questions proposées.
Une fois renvoyé de
mysqli_query()
方法设置了$result
,您就可以使用mysqli_fetch_fields()
un tableau décrivant chaque colonne de l'ensemble de résultats.Chaque élément de ce tableau est un objet avec plusieurs propriétés. L'un des attributs est des attributs comme
name
——您可以将其用作 csv 文件的标题。您还可以获得max_length
、length
和table
. La documentation liée montre un exemple d'utilisation de ces métadonnées. p>Si votre requête est plus petite que l'attribut
SELECT * FROM table
更复杂,则此元数据特别有用:如果您为查询中的列分配别名,它们会显示在名称
code> de l'élément du tableau de métadonnées.Cela fonctionne même s'il n'y a aucune ligne dans l'ensemble de résultats.
Puisque vous utilisez
mysqli_fetch_assoc
,因此列的名称是每次迭代中$row
clés d'un tableau. Vous pouvez mettre cela dans un fichier lors de la première itération :