gpt4 book ai didi

php - LINES TERMINATED BY 和 FIELDS TERMINATED BY 的多种可能性 - MySQL

转载 作者:行者123 更新时间:2023-11-29 12:35:16 26 4
gpt4 key购买 nike

我正在尝试在我的内容管理系统中创建一项功能,用户可以上传 CSV 文件,然后解析该文件并将数据放入 MySQL 数据库中。为此,我使用文件输入和 SQL 查询。

$sql = "LOAD DATA LOCAL INFILE '".$_FILES["file"]["tmp_name"]."'
INTO TABLE persons
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\r'
(id, name, email, contacts)";

这非常适合我在计算机上创建的 .csv 文件,但并非所有 CSV 文件都具有以分号终止的字段和以 \r 终止的行。现在我希望此查询适用于所有 .csv 文件。否则此功能将无法很好地在我的 CMS 中实现。有什么方法可以使此功能适用于具有其他字段和行结尾的 .csv 文件吗? (例如\n、\r\n、、)

最佳答案

尝试以“\r\n”结尾的行

这适用于以“\r\n”结尾的文件,也适用于以“\r”和“\n”结尾的文件。来自 MySQL 文档:

The FIELDS TERMINATED BY, LINES STARTING BY, and LINES TERMINATED BY values can be more than one character. For example, to write lines that are terminated by carriage return/linefeed pairs, or to read a file containing such lines, specify a LINES TERMINATED BY '\r\n' clause.

[已编辑]

您还需要将 \r\n 添加到子句 FIELDS TERMINATED BY 中,以便告诉解析器不要在第一行的最后一个字段。所以

字段以“;,\t\r\n”结尾

在大多数情况下都有效。

关于php - LINES TERMINATED BY 和 FIELDS TERMINATED BY 的多种可能性 - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26885252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com