我正在尝试将一些电子邮件从文本文件插入到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
请查看我的方法有什么问题,并建议任何可能的方法来正确地做到这一点。
答案 0 :(得分:3)
此...
FIELDS TERMINATED BY 'r'
你的意思是......
FIELDS TERMINATED BY '\r'
???
DOCS
如果未指定FIELDS或LINES子句,则默认值相同 好像你写了这个:
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
(反斜杠是SQL中字符串中的MySQL转义字符 语句,所以要指定文字反斜杠,必须指定两个 值的反斜杠被解释为单个反斜杠。该 转义序列'\ t'和'\ n'指定制表符和换行符, 分别。)
答案 1 :(得分:1)
替换
FIELDS TERMINATED BY 'r'
FIELDS TERMINATED BY '\r'
现在,r
充当终止字符,因此r
之后的任何内容都会被删除。
答案 2 :(得分:1)
TERMINATED BY 'r'(email)";
您通过字符'r'
终止电子邮件所以当你使用
时cricket4877@yahoo.com
它会截断r之后的所有内容,因此它只显示c。
您应该将其更改为
TERMINATED BY '/r'(email);
P.S 我希望它们是电子邮件,而不是实际的电子邮件。