PHP上传Excel并导入MySQL是一个常见的数据处理任务。它涉及以下几个步骤:
原因:可能是文件格式不正确,或者PHP库不支持该文件格式。
解决方法:
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
$inputFileName = './excels/uploaded_file.xlsx';
$spreadsheet = IOFactory::load($inputFileName);
原因:可能是数据格式不正确,或者某些字段缺失。
解决方法:
foreach ($spreadsheet->getActiveSheet()->getRowIterator() as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
$value = $cell->getValue();
if (!is_numeric($value)) {
throw new Exception("Invalid data in row " . $row->getRowIndex());
}
}
}
原因:可能是数据库连接问题,或者插入语句有误。
解决方法:
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
foreach ($spreadsheet->getActiveSheet()->getRowIterator() as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
$data = [];
foreach ($cellIterator as $cell) {
$data[] = $cell->getValue();
}
$sql = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("sss", $data[0], $data[1], $data[2]);
$stmt->execute();
}
$stmt->close();
$conn->close();
通过以上步骤和方法,你可以实现PHP上传Excel并导入MySQL的功能。如果遇到具体问题,可以根据错误信息和日志进行进一步的调试和解决。
领取专属 10元无门槛券
手把手带您无忧上云