PHPEye开源社区 » PHP基础交流 » load data infile 出错,请专家们进一下
《Programming PHP》第二版上市
2007-7-30 15:11 mayongzhan
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呢?

2007-7-30 15:24 Haohappy
你是在PHP代码中执行吗? 是的话要把单引号改成双引号。
LINES TERMINATED BY '\r\n'  
改成
LINES TERMINATED BY “\r\n”

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

2007-7-31 13:22 mayongzhan
谢谢了.我试一下,这个用于定时将文件内容写入数据库中.

2007-7-31 13:32 mayongzhan
出错信息
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及以后的语句),先这样.发贴求助~

2007-7-31 23:19 qqiopmm
:o :o :o

2007-8-20 09:15 mayongzhan
如下

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

2007-8-20 09:17 mayongzhan
前些日子做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都没了.气愤!

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.