可能重复:
Import CSV file directly into MySQL
Export CSV from Mysql
我想从我在系统上的CSV文件中读取(C:/xampp/htdocs/live/quotes.csv) 进入我的MySQL表。
我创建了这样的表:
mysql_query("CREATE TABLE IF NOT EXISTS datas(
id int(255) NOT NULL auto_increment,
symbol_t char(6) NOT NULL,
last_trade_price_only_t varchar(100) NOT NULL,
a varchar(30) NOT NULL,
b varchar(30) NOT NULL,
c varchar(30) NOT NULL,
d varchar(30) NOT NULL,
e varchar(30) NOT NULL,
PRIMARY KEY (id)
)");
现在想在表格中写出这样的:
$location="C:/xampp/htdocs/live/quotes.csv";
$sql = "LOAD DATA LOCAL INFILE '{$location}'
INTO TABLE '{datas}'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
('symbol_t', 'last_trade_price_only_t','a','b','c','d','e')";
mysql_query($sql);
但不知怎的,它不起作用。我把位置设置错了吗?
我还有另一个问题。如果我想获得一个带有url的外部csv(yahoo finanace csv):http://finance.yahoo.com/d/quotes.csv?s= $ ticker_url& f = sl1 = .csv ($ ticker_url是股票代码的集合)。我的$ location var是否仅仅是url,还是我必须先用fopen(url)打开它?
现在:
$data_tablename="data_".date("m_d_Y",time());
$filename="C:\\xampp\\htdocs\\live\\quotes.csv";
$sql = "LOAD DATA LOCAL INFILE '{$filename}'
INTO TABLE '{$data_tablename}'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n'
('symbol_t', 'last_trade_price_only_t','a','b','c','d','e')";
答案 0 :(得分:4)
由于您使用的是Windows,因此您的CSV文件中的行可能会以\r\n
终止,因此您需要更改:
LINES TERMINATED BY '\n'
要
LINES TERMINATED BY '\r\n'
如果您在Windows系统上生成了文本文件,则可能 必须使用LINES TERMINATED BY'\ r \ n'来正确读取文件, 因为Windows程序通常使用两个字符作为一行 终止。某些程序(如写字板)可能会使用\ r作为一行 写文件时的终结符。要阅读此类文件,请使用LINES 终止于'\ r'。
此外:
'{datas}'
可能意味着:
'{$datas}'
此外:
('symbol_t', 'last_trade_price_only_t','a','b','c','d','e')";
需要:
(`symbol_t`, `last_trade_price_only_t`, `a`, `b`, `c`, `d`, `e`)";