0

我正在尝试将一些电子邮件从文本文件插入 MySQL 数据库,其中一些被正确插入,但其中一些没有。

我实现这一点的方法是这样的。

$query = "LOAD DATA LOCAL INFILE 'email-list.txt' INTO TABLE $tablename FIELDS TERMINATED BY 'r'(email)";

$result = mysqli_query($connection, $query);

一些未正确插入的电子邮件就像。

    xxxx7@yahoo.com
    xxx_xxxxx05@yahoo.com

这些像插入一样。

    x
    xxx_xxxxx

请查看我的方法有什么问题,并建议任何可能的方法来正确执行此操作。

4

3 回答 3

2

这个...

FIELDS TERMINATED BY 'r'

你的意思...

FIELDS TERMINATED BY '\r'

???

文档

如果您不指定 FIELDS 或 LINES 子句,则默认值与您编写的相同:

FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''

(反斜杠是 SQL 语句中字符串中的 MySQL 转义字符,因此要指定文字反斜杠,您必须指定两个反斜杠以将值解释为单个反斜杠。转义序列 '\t' 和 '\n' 指定制表符和换行符。)

于 2012-09-28T08:40:33.027 回答
0

替换 FIELDS TERMINATED BY 'r'FIELDS TERMINATED BY '\r'

现在,r充当终止字符,因此之后r的任何内容都将被删除。

于 2012-09-28T08:42:15.210 回答
0
TERMINATED BY 'r'(email)"; 

您通过字符 'r' 终止电子邮件

所以当你使用

cricket4877@yahoo.com

它会截断 r 之后的所有内容,因此它只显示 c。

你应该把它改成

TERMINATED BY '/r'(email);

PS 我希望它们是虚构的电子邮件,而不是实际的电子邮件。

于 2012-09-28T08:42:23.293 回答