标题: load data infile 出错,请专家们进一下
mayongzhan
PHPEye Developer
Rank: 8Rank: 8


UID 136
精华 2
积分 20
帖子 41
翻译 18
原创 1
阅读权限 1
注册 2007-6-30
状态 离线
发表于 2007-7-30 15:11  资料  短消息  加为好友 
load data infile 出错,请专家们进一下

LOAD DATA INFILE 'data.txt' INTO TABLE tablename FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'

然后不加上FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' 就没有问题,就是使用默认的\t和\n.

有没有人遇到过相同情况.

data.txt文件中是这样的   用的是\r\n换行
123,123,123,12
123,5324,ttet,tret

就把那两句定义分段和分字去掉,然后把.txt文件改成/t和/n区分就好用.

怎么样写才能成功使用,和\r\n呢?

顶部
Haohappy
超级版主
Rank: 8Rank: 8
PHPEye站长


UID 2
精华 11
积分 110
帖子 283
翻译 6
原创 1
阅读权限 150
注册 2007-5-2
状态 离线
发表于 2007-7-30 15:24  资料  短消息  加为好友  添加 haohappy 为MSN好友 通过MSN和 haohappy 交谈
你是在PHP代码中执行吗? 是的话要把单引号改成双引号。
LINES TERMINATED BY '\r\n'  
改成
LINES TERMINATED BY “\r\n”

导出,导入MySQL数据最好用mysql自带的mysqldump工具。





互助共享,共同成长。
顶部
mayongzhan
PHPEye Developer
Rank: 8Rank: 8


UID 136
精华 2
积分 20
帖子 41
翻译 18
原创 1
阅读权限 1
注册 2007-6-30
状态 离线
发表于 2007-7-31 13:22  资料  短消息  加为好友 
谢谢了.我试一下,这个用于定时将文件内容写入数据库中.

顶部
mayongzhan
PHPEye Developer
Rank: 8Rank: 8


UID 136
精华 2
积分 20
帖子 41
翻译 18
原创 1
阅读权限 1
注册 2007-6-30
状态 离线
发表于 2007-7-31 13:32  资料  短消息  加为好友 
出错信息
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FIELDS TERMINATED BY " " LINES TERMINATED BY " "' at line 1
执行的语句
$query = "LOAD DATA INFILE 'd:/test/test2/temp/test.txt' INTO TABLE record(test1,test2,test3) FIELDS TERMINATED BY \"\t\" LINES TERMINATED BY \"\n\"";

是不是adodb不支持fields terminated by?
目前使用的是load data infile 默认的fields和lines,可以用(就是不写fields及以后的语句),先这样.发贴求助~

顶部
qqiopmm
新手上路
Rank: 1



UID 237
精华 0
积分 0
帖子 2
翻译 0
原创 0
阅读权限 10
注册 2007-7-31
状态 离线
发表于 2007-7-31 23:19  资料  短消息  加为好友  添加 qqiopmm 为MSN好友 通过MSN和 qqiopmm 交谈





别人笑我太疯癫,我笑他人看不穿bcc
顶部
mayongzhan
PHPEye Developer
Rank: 8Rank: 8


UID 136
精华 2
积分 20
帖子 41
翻译 18
原创 1
阅读权限 1
注册 2007-6-30
状态 离线
发表于 2007-8-20 09:15  资料  短消息  加为好友 
如下

[ 本帖最后由 mayongzhan 于 2007-8-20 09:17 编辑 ]

顶部
mayongzhan
PHPEye Developer
Rank: 8Rank: 8


UID 136
精华 2
积分 20
帖子 41
翻译 18
原创 1
阅读权限 1
注册 2007-6-30
状态 离线
发表于 2007-8-20 09:17  资料  短消息  加为好友 
前些日子做load date infile 时,总是出现错误.说语法错误.总是自定义使用符号时出错.
然后解决方式是不使用自定义,所有文档使用默认方法使用.!
今天仔细的调试了一下,发现可以了.原因很简单.是顺序问题.
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [FIELDS
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char' ]
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number LINES]
    [(col_name_or_user_var,...)]
    [SET col_name = expr,...)]

里面是fields和lines在前面,(col_name_or_user_var,…)在后面
原来我使用的时候都是直接把要写的这些属性放在表名后面,这样是不对的,一定要写到fields和lines的后面!
在此感谢phpeye的haohappy,你是唯一回答了我问题的人!怎么phpchina现在这么不友善了呢?没人管了吧.还删我的贴!我发的adodb翻译和smarty都没了.气愤!





顶部
 


PHPEye开源社区


当前时区 GMT+8, 现在时间是 2008-12-5 08:39

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.024816 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - PHPEye开源社区 - Archiver