在Web開發中,數據的導入與導出是常見且重要的需求。無論是從外部文件導入數據到數據庫,還是將數據庫中的數據導出為CSV或Excel文件,都需要合理使用PHP的文件和數據庫操作函數。本文將系統介紹如何實現這兩項功能,並提供具體的PHP示例代碼,幫助您快速掌握相關技巧。
數據庫導入通常指將CSV等格式的外部數據文件導入到數據庫表中。以下代碼示例演示了基本的導入流程:
<?php // 導入數據庫配置文件 require_once 'config.php'; // 連接數據庫 $conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); // 檢測數據庫連接是否成功 if ($conn-> connect_error) { die("數據庫連接失敗:" . $conn->connect_error); } // 讀取外部CSV文件$csvFile = 'data.csv'; $handle = fopen($csvFile, 'r'); // 逐行讀取CSV文件內容,並插入數據庫while (($data = fgetcsv($handle, 1000, ',')) !== false) { $sql = "INSERT INTO `tablename` (`column1`, `column2`, `column3`) VALUES ('" . $data[0] . "', '" . $data[1] . "', '" . $data[2] . "')"; if ($conn->query($sql) === false) { echo "數據導入失敗:" . $conn->error; } } // 關閉文件句柄和數據庫連接fclose($handle); $conn->close(); ?>
代碼解析:首先引入數據庫配置,建立連接後使用fopen打開CSV文件, fgetcsv逐行讀取數據,並通過拼接SQL語句插入數據庫,最後關閉資源,完成數據導入。
數據導出通常是將數據庫表數據導出成CSV文件,方便後續處理或備份。以下示例展示如何實現導出:
<?php // 導入數據庫配置文件 require_once 'config.php'; // 連接數據庫 $conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); // 檢測數據庫連接是否成功 if ($conn-> connect_error) { die("數據庫連接失敗:" . $conn->connect_error); } // 查詢數據庫中的數據$sql = "SELECT * FROM `tablename`"; $result = $conn->query($sql); if ($result->num_rows > 0) { // 創建CSV文件並寫入表頭$filename = 'data.csv'; $handle = fopen($filename, 'w'); fputcsv($handle, array('Column 1', 'Column 2', 'Column 3')); // 寫入數據行while ($row = $result->fetch_assoc()) { fputcsv($handle, array($row['column1'], $row['column2'], $row['column3'])); } // 關閉文件句柄fclose($handle); echo "數據導出成功!"; } else { echo "數據庫中無數據!"; } // 關閉數據庫連接$conn->close(); ?>
代碼說明:通過數據庫連接查詢數據,若存在結果則創建CSV文件,寫入表頭及數據內容,最後關閉資源。成功導出後會有提示。
本文介紹瞭如何利用PHP實現數據的導入與導出功能,結合文件操作與數據庫操作,為開發者提供了簡單易懂的參考代碼。掌握這些技巧後,可以在實際項目中高效地處理數據的遷移與備份需求,提高開發效率。