【发布时间】:2014-02-13 12:33:10
【问题描述】:
我无法确定我的 CSV 行是如何终止的。我正在使用以下 PHP 代码将数据从 CSV 加载到我的数据库中。
mysql_query('LOAD DATA LOCAL INFILE "temp/test.csv"
INTO TABLE test
FIELDS TERMINATED BY ","
LINES TERMINATED BY "///"
IGNORE 1 LINES (one, two, three, four, five)');
现在,当我使用LINES TERMINATED BY "///" 时,数据已正确放入我的数据库中,除了每行的第一列是“返回”,然后是单元格数据。这不是我想要的,我想要回归消失。
我认为CSV中最后一列单元格///、return 和第一列单元格的顺序由/// 拆分,应该由/// + return 拆分。我应该更改LINES TERMINATED BY。我试过\n、\r、\r\n、\n\r。过了一会儿,我尝试了<br> 并知道我需要帮助。
我在 Mac 上使用 MS Office 并将我的 CSV 保存为 Comma Separated Values (.csv) (sample)。我还尝试了提到的LINES TERMINATED BY 与MS-DOS Comma Separated 和Windows Comma Separated 文件。
运行我的查询后SELECT HEX(one) FROM test 的结果:
Array
(
[0] => 0D6131
)
Array
(
[0] => 0D6132
)
Array
(
[0] => 0D6133
)
【问题讨论】:
-
0D是回车符 (\r)。 (而61是A,30–39是数字0-9。)当我将您的查询与LINES TERMINATED BY "///\r"一起使用时,它会在我的MySQL 5.1.49 上导入CSV .
标签: php mysql sql csv load-data-infile