Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Import danych., Jak?
Blackhole
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


Jak zaimportować do bazy dane z pliku CVS :?:

Ten post edytował Blackhole 2.12.2004, 13:13:54
Go to the top of the page
+Quote Post
ser
post
Post #2





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.10.2004

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


proponuje import do Accesa i export przez ODBC
ewentualnie importer via php,perl itp
m.
Go to the top of the page
+Quote Post
Blackhole
post
Post #3





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


To hell with Access! (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

A import via php to jak :?:
Go to the top of the page
+Quote Post
ser
post
Post #4





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.10.2004

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


ładujesz plik do zmiennej>parsowanie w pętli>insert
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


http://www.mail-archive.com/pgadmin-suppor...g/msg03222.html
Use psql and the pgsql 8.0 COPY command. Currently, this isn't currently supported in pgadmin3 (we *do* have export)

Na postrgesie sie nie znam, ale zasze mozna to zrobic za pomoca skryptu.
Go to the top of the page
+Quote Post
Blackhole
post
Post #6





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


Zrobiłem sobie programik w C++ zamieniający plik CVS na skrypt dodający dane do bazy. To chyba najłatwiejsze rozwiązanie.
Go to the top of the page
+Quote Post
ser
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.10.2004

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


libpq czy embedded SQL?
Go to the top of the page
+Quote Post
Blackhole
post
Post #8





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


Bez żadnych bibliotek. Zrobiłem w czystym C/C++ tak tylko, że plik CVS jest przerabiany w plik zawierający polecenia "INSERT INTO". Potem uruchamiam go w psql i mam dane z pliku CVS w bazie. Może to niezbyt dobre rozwiązanie, ale innego nie mam, a jak dotąd mi wystarcza.
Go to the top of the page
+Quote Post
mhs
post
Post #9





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

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


Nie najnowszy wątek, ale odpowiem – być może w przyszłości przyda się komuś.

Nie jest konieczne pisanie dodatkowych programów by można zaimportować dane do bazy danych z pliku CSV. Do tego celu z psql’a można wykorzystać polecenie \copy.


Kod
\copy table [ ( column_list ) ] { from | to } filename | stdin | stdout [ with ] [ oids ] [ delimiter [as] ’character’ ] [ null [as] ’string’ ]



przykład:

Kod
\COPY test FROM 'c:/import.csv' USING DELIMITERS ','
Go to the top of the page
+Quote Post
Blackhole
post
Post #10





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


Ok, wielkie dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dobrze wiedzieć o takiej możliwości.
Go to the top of the page
+Quote Post
Cezar708
post
Post #11





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Witam,

wiem, że wątek odgrzewam po pnad 3 latach, ale chyba niepotrzebne będzie zakładanie nowego tematu.

Otóż mam podobny problem: czy jest możliwość użycia polecenia COPY BEZPOŚREDNIO z poziomu PHP, a nie jak powyżej z poziomu psql?

chodzi mi o coś takiego (oczywiście to nie działa)

  1. <?php
  2. pg_query($dbHandle, "
  3. CREATE TABLE friend
  4. (
  5. firstname char(15),
  6. lastname char(15),
  7. city char(15),
  8. age int4
  9. ");
  10. COPY tabela FROM 
  11. 'imie1|nazwisko1|city1|10
  12. imie2|nazwisko2|city1|11
  13. imie3|nazwisko3|city1|12
  14. .'
  15. USING DELIMITERS '|'
  16. ");
  17. ?>


czy jest jakaś możliwość zrobienia tego z poziomu PHP bez tworzenia pliku? Czy może jest jakieś inne obejście?

Ten post edytował Cezar708 28.03.2008, 14:31:51
Go to the top of the page
+Quote Post
chriswebber
post
Post #12





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.11.2007

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


Zaimportuj plik plik .csv za pomocą file_get_contents() otrzymasz string - a żeby zrobić z nim coś sensownego to zrób sobie np. explode () po ";" czy "," i otrzymujesz 2 wymiarową tablicę z której wyciągasz dane for() i wrzucasz do bazy - wada jak dancyh jest więcej to limity co do czasu wykonania skryptu bądź wielkości zajmowanej pamięci operacyjnej lubią być przekraczane ....
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #13





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Cytat(chriswebber @ 6.05.2008, 15:31:59 ) *
Zaimportuj plik plik .csv za pomocą file_get_contents() otrzymasz string - a żeby zrobić z nim coś sensownego to zrób sobie np. explode () po ";" czy "," i otrzymujesz 2 wymiarową tablicę z której wyciągasz dane for() i wrzucasz do bazy - wada jak dancyh jest więcej to limity co do czasu wykonania skryptu bądź wielkości zajmowanej pamięci operacyjnej lubią być przekraczane ....


Już lepiej http://www.php.net/manual/en/function.fgetcsv.php
Go to the top of the page
+Quote Post

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: 22.08.2025 - 23:18