首页 > 后端开发 > php教程 > 如何使用PHP高效地将CSV数据导入MySQL并避免常见问题?

如何使用PHP高效地将CSV数据导入MySQL并避免常见问题?

Patricia Arquette
发布: 2024-11-17 12:12:02
原创
997 人浏览过

How to Efficiently Import CSV Data into MySQL Using PHP and Avoid Common Issues?

使用 PHP 和 MySQL 导入 CSV 数据

问题和疑问

用户在将 CSV 数据导入 MySQL 数据库时遇到问题,并提出以下问题问题:

  1. 导入的文本值在数据库中显示为“0”。
  2. 如何处理引号内的数据?
  3. 忽略前几行包含标题的 CSV 文件。
  4. 导入数据库时​​保留数据格式(小数点)。
  5. 大数据导入期间发生“超出执行时间”错误。

解决方案

1.显示为“0”的文本值:

数据可能作为整数而不是字符串导入到数据库中。确保数据库列的类型正确(例如,TEXT 或 VARCHAR)。

2.处理引用的数据:

在 LOAD DATA INFILE 查询中使用 OPTIONALLY ENCLOSED BY 子句来指定封闭字符(例如,“)。

3. 忽略标题行:

在查询中添加 LINES TERMINATED BY 子句并指定行分隔符(例如 n),然后在导入之前手动忽略所需的初始行数。

4. 保留数据格式:

除非另有说明,MySQL 将以原始格式存储数值。

5.时间超出错误:

增加 PHP 配置中的 max_execution_time 设置(例如,在 php.ini 中)以允许更长的执行时间对于大型导入,请考虑使用更有效的方法,例如 MySQL 的 LOAD DATA INFILE。

替代解决方案

不使用 PHP 循环导入数据,MySQL 的 LOAD DATA INFILE 功能可以通过单个 SQL 查询直接将 CSV 文件导入到表中:

$query = <<<'eof'
LOAD DATA INFILE '$fileName'
INTO TABLE tableName
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(field1,field2,field3,etc)
eof;

$db->query($query);
登录后复制

此方法比 PHP 解析循环更快、更高效。

以上是如何使用PHP高效地将CSV数据导入MySQL并避免常见问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板