阅读量:0
要使用PHP和SQL Helper实现数据导入,首先确保你已经创建了一个数据库连接,并安装了一个SQL Helper类。以下是一个简单的示例,展示了如何使用这些工具将CSV文件中的数据导入到数据库中:
- 安装SQL Helper类。你可以从GitHub上下载它(https://github.com/PHPOffice/PhpSpreadsheet),或者使用Composer安装:
composer require phpoffice/phpspreadsheet
- 创建一个CSV文件,例如
data.csv
,其中包含要导入到数据库的数据,如下所示:
id,name,email 1,John Doe,john@example.com 2,Jane Smith,jane@example.com
- 编写一个PHP脚本,使用SQL Helper类将CSV数据导入到数据库中。在这个例子中,我们将假设你的数据库中有一个名为
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
的数据库表中。请确保根据你的实际情况修改数据库连接信息和表名。