要使用PHP和SQL Helper實現數據導入,首先確保你已經創建了一個數據庫連接,并安裝了一個SQL Helper類。以下是一個簡單的示例,展示了如何使用這些工具將CSV文件中的數據導入到數據庫中:
composer require phpoffice/phpspreadsheet
data.csv
,其中包含要導入到數據庫的數據,如下所示:id,name,email
1,John Doe,john@example.com
2,Jane Smith,jane@example.com
users
的表,具有id
,name
和email
列。<?php
// 引入自動加載文件
require 'vendor/autoload.php';
// 引入PhpSpreadsheet庫
use PhpOffice\PhpSpreadsheet\IOFactory;
// 數據庫連接信息
$host = 'localhost';
$username = 'your_username';
$password = 'your_password';
$dbname = 'your_database';
// 創建數據庫連接
$conn = new mysqli($host, $username, $password, $dbname);
// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
// 讀取CSV文件
$csvFile = 'data.csv';
$spreadsheet = IOFactory::load($csvFile);
$worksheet = $spreadsheet->getActiveSheet();
// 獲取表頭
$headers = $worksheet->getRowData(1);
// 準備插入數據的SQL語句
$sql = "INSERT INTO users (id, name, email) VALUES ";
$values = [];
// 遍歷工作表中的數據行,并將數據插入到數據庫中
foreach ($worksheet->getRowIterator() as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false); // 遍歷所有單元格,即使它們沒有值
$rowData = [];
foreach ($cellIterator as $cell) {
$rowData[] = $cell->getValue();
}
// 跳過表頭行
if ($row->getRowIndex() == 1) {
continue;
}
// 為每個數據行構建一個值數組,并添加到SQL語句中
$values[] = "({$rowData[0]}, '{$rowData[1]}', '{$rowData[2]}')";
}
// 關閉數據庫連接
$conn->close();
// 執行批量插入操作
$sql .= implode(', ', $values);
$conn = new mysqli($host, $username, $password, $dbname);
if ($conn->query($sql) === TRUE) {
echo "數據導入成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
這個腳本將讀取CSV文件中的數據,并將其插入到名為users
的數據庫表中。請確保根據你的實際情況修改數據庫連接信息和表名。