Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Import pliku csv do mysql
todziu
post
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 16.08.2006

Ostrzeżenie: (0%)
-----



ok juz sobie poradziłem z ta niezgodnością ver w poprzednim poscie ale powstał następny problem (IMG:style_emoticons/default/worriedsmiley.gif)

plik csv wyglad tak:

  1. 5000159021692;SKITTLES FRUIT 125G.;3,99;0
  2. 5000159023061;MALTESERS 100G.;4,59;10
  3. 5000159028172;BOUNTY MINI 198G.;5,89;10
  4. 5000159314732;SNICKERS CRUNCHER BATON 40G.;1,09;20

i nie chcialbym przerabiac pliku csv bo jest to surowy plik wyeksportowany jako csv z excela

import do bazy wyglada tak:
  1. $wynik = mysql_query("LOAD DATA LOCAL INFILE '/tmp/test.csv' INTO TABLE `tychydisbaza` FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'");


logi nic nie krzyczą blada mysql nie zwraca gdzie jest problem - dzieki za pomoc

Ten post edytował todziu 29.11.2010, 21:33:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Quadina
post
Post #2





Grupa: Zarejestrowani
Postów: 200
Pomógł: 38
Dołączył: 1.12.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


http://dev.mysql.com/doc/refman/5.0/en/load-data-local.html

W takim razie odpowiedź jest jedna. Twój serwer jest tak skonfigurowany, że PHP nie będzie miało uprawnień do wykonania LOAD DATA. Musiało by być przekompilowane z odpowiednią dyrektywą. W takim razie nie pozostaje nic innego jak exec() :/ Co nie jest zbyt ciekawym rozwiązaniem...

Co do wysyłania przez skrypt. Zgadzam się, że jest to dość toporne. Ale przy takim dużym pliku możesz ładować zasadą phpMyAdmina. To znaczy, że wysyłasz w INSERT VALUES w nawiasach więcej informacji, np. paczki po 50-100 sztuk. Dzięki przejściu fopen('','r') możesz przechodzić przez plik nie przeładowując pamięci. Więc można zoptymalizować skrypt z 10 minut nawet do jednej. W razie co mogę Ci tutaj przedstawić jakieś moje wersje takiego cuda, ale to już po weekendzie. Niestety obowiązki na uczelni nie pozwalają.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 04:43