用户在将 CSV 数据导入 MySQL 数据库时遇到问题,并提出以下问题问题:
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中文网其他相关文章!