Возможный дубликат:
Импорт файла CSV непосредственно в MySQL
Экспорт CSV из 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)
)");
и теперь хочу записать CSV в таблицу следующим образом:
$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);
но как-то не работает. Я неправильно указал место?
И у меня появился еще один вопрос. Если я хочу получить внешний CSV-файл (yahoo finanace csv) с URL-адресом: 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')";
LOAD DATA
в MySQL напрямую, чтобы увидеть, возникнут ли какие-либо ошибки - я подозреваю, что{datas}
неверен. Нужны ли брекеты? В противном случае попробуйте использовать PHP напрямую для экспорта строк с помощью fputcsv. Кроме того, есть много других идей здесь - не забудьте поискать свои проблемы в Интернете, прежде чем задавать вопросы. - person halfer   schedule 05.01.2013