PHPExcelReader:无乱码导入Excel到MySQL

11 下载量 95 浏览量 更新于2024-07-15 2 收藏 95KB PDF 举报
"这篇教程介绍了如何使用PHP-ExcelReader库将Excel文件导入MySQL数据库。教程中提到的方法适用于xls和xlsx格式的文件,并且在UTF-8编码的MySQL环境中进行了测试,确保不会出现乱码问题。" 在进行Excel数据导入到MySQL的过程中,我们需要遵循以下步骤: 1. **获取PHP-ExcelReader库**:首先,你需要从SourceForge(http://sourceforge.net/projects/phpexcelreader)下载PHP-ExcelReader库,这个库提供了读取Excel文件的能力。 2. **设置编码**:在处理Excel文件时,需要设置正确的输出编码。在示例代码中,`setOutputEncoding('gbk')`被用来设置GBK编码,以确保中文字符能够正确显示。如果你的环境使用的是UTF-8编码,可以将此行改为`setOutputEncoding('utf-8')`。 3. **读取Excel文件**:使用`Spreadsheet_Excel_Reader`类来读取Excel文件,例如`$data->read('date.xls')`,这里`date.xls`是你要导入的Excel文件名。 4. **连接MySQL数据库**:使用`mysql_connect()`函数连接到MySQL服务器,提供数据库主机名(如`localhost`)、用户名(如`root`)、密码(如`1234`)。连接成功后,使用`mysql_select_db()`选择目标数据库,如`'wenhuaedu'`。 5. **设置字符集**:为了正确处理中文字符,执行`mysql_query("set names 'gbk'")`来设置数据库的字符集。如果是UTF-8环境,应使用`set names 'utf8'`或`set names 'utf8mb4'`。 6. **处理数据**:通过循环遍历`$data->sheets[0]['numRows']`,将每一行的数据插入到MySQL数据库。在示例代码中,`for($i=1; $i<=$data->sheets[0]['numRows']; $i++)`这一部分处理了行数据。 7. **插入数据**:在循环内,你可以提取所需的单元格数据,例如`$data->sheets[0]['cells'][$i][$j]`,然后构建SQL INSERT语句将数据插入到对应的数据库表中。示例代码中的注释部分展示了如何打印Excel表数据,实际操作时应替换为插入数据库的代码。 8. **注意安全**:在实际项目中,为防止SQL注入,应使用参数化查询或预编译语句。同时,考虑到PHP `mysql_` 函数已经过时,建议使用PDO或mysqli扩展来连接MySQL数据库。 9. **错误处理**:在处理数据库操作时,通常会添加错误处理代码,例如`or die()`,当连接失败时显示错误信息。`error_reporting(E_ALL ^ E_NOTICE)`用于控制错误报告级别,可以避免显示不必要的通知。 10. **运行脚本**:最后,将整个脚本保存为如`test.php`的文件,然后通过浏览器访问`http://localhost/test.php`来执行导入操作。 总结来说,通过上述步骤,我们可以使用PHP-ExcelReader库将Excel文件内容导入到MySQL数据库,确保数据的正确性并避免中文乱码问题。这个过程涉及文件读取、数据库连接、数据处理和错误处理等多个环节,对PHP和MySQL的熟悉程度是完成这个任务的关键。