fputcsv()是PHP 的一個內置函數,用於將數組的數據寫入到文件中,並將其格式化為CSV 格式。每一行數組會被轉換為CSV 格式的行,數組中的每個元素會被逗號(或指定的分隔符)分開。
bool fputcsv ( resource $handle , array $fields [, string $separator = "," [, string $enclosure = "\"" [, string $escape = "\\" ]]] )
$handle :目標文件的文件句柄,必須是一個有效的文件資源。
$fields :要寫入CSV 文件的數組,通常是一個從數據庫查詢中獲取的結果。
$separator :指定分隔符,默認為逗號。
$enclosure :指定引用字符,默認為雙引號。
$escape :指定轉義字符,默認為反斜杠。
首先,我們需要連接到數據庫並執行查詢,獲取數據。以下是一個基本的mysqli數據庫連接和查詢操作:
<?php
// 連接數據庫
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_database_name";
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢查連接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 執行查詢
$sql = "SELECT id, name, email FROM users"; // 示例查詢
$result = $conn->query($sql);
// 檢查查詢結果
if ($result->num_rows > 0) {
// 有數據可以導出
} else {
echo "0 results";
}
?>
我們使用fopen()函數創建並打開一個CSV 文件,用於存儲導出的數據:
<?php
// 打開一個 CSV 文件(如果沒有則創建)
$file = fopen("export.csv", "w");
// 寫入 CSV 文件頭部
$headers = ['ID', 'Name', 'Email'];
fputcsv($file, $headers);
?>
接下來,我們使用fputcsv()將查詢結果逐行寫入CSV 文件中。我們需要使用mysqli_fetch_assoc()或其他函數獲取查詢的每一行數據,並將它們寫入文件:
<?php
// 逐行读取查询结果并寫入 CSV 文件
while($row = $result->fetch_assoc()) {
// 将每一行数据寫入 CSV 文件
fputcsv($file, $row);
}
// 關閉文件
fclose($file);
?>
在導出完成後,記得關閉數據庫連接:
<?php
// 關閉數據庫連接
$conn->close();
?>
<?php
// 連接數據庫
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_database_name";
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢查連接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 執行查詢
$sql = "SELECT id, name, email FROM users"; // 示例查詢
$result = $conn->query($sql);
// 檢查查詢結果
if ($result->num_rows > 0) {
// 打開一個 CSV 文件(如果沒有則創建)
$file = fopen("export.csv", "w");
// 寫入 CSV 文件頭部
$headers = ['ID', 'Name', 'Email'];
fputcsv($file, $headers);
// 逐行读取查询结果并寫入 CSV 文件
while($row = $result->fetch_assoc()) {
fputcsv($file, $row);
}
// 關閉文件
fclose($file);
echo "Data has been exported to export.csv";
} else {
echo "0 results";
}
// 關閉數據庫連接
$conn->close();
?>
連接數據庫:使用mysqli連接到數據庫。
執行查詢:運行SQL 查詢,獲取mysqli_result結果集。
導出數據:使用fputcsv()循環將每一行數據寫入CSV 文件。
關閉連接:導出完成後,關閉文件句柄和數據庫連接。
通過這種方式,您可以輕鬆地將數據庫中的數據導出為CSV 文件,便於數據的存儲、遷移或分析。