我正在尝试在我的内容管理系统中创建一个功能,用户可以上传 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、、)
Try LINES TERMINATED BY '\r\n'
这适用于以“\r\n”结尾的文件,也适用于以“\r”和“\n”结尾的文件。来自 MySQL 文档:
字段终止于、行起始于和行终止于
值可以是多个字符。例如,要写行
由回车/换行对终止,或读取
包含此类行的文件,请指定 LINES TERMINATED BY '\r\n'
条款。
[EDITED]
您还需要添加\r\n
到该条款FIELDS TERMINATED BY
为了告诉解析器不要在第一行的最后一个字段中包含行尾符号。所以
FIELDS TERMINATED BY ';, \t\r\n'
在大多数情况下都有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)