Maison  >  Questions et réponses  >  le corps du texte

Obtenez les noms de colonnes et les données pour l'exportation CSV (MYSQL) à l'aide de PHP

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.

P粉579008412P粉579008412324 Il y a quelques jours666

répondre à tous(2)je répondrai

  • P粉949848849

    P粉9498488492023-11-05 20:48:37

    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_lengthlengthtable. La documentation liée montre un exemple d'utilisation de ces métadonnées.

    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.

    répondre
    0
  • P粉002023326

    P粉0020233262023-11-05 09:24:13

    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 :

    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);
        // ..
    }

    répondre
    0
  • Annulerrépondre