Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z LOAD DATA INFILE, kodowanie
Liberator
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.09.2002
Skąd: Kraków

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


Usiłuję załadować do tabeli dane z csv przy pomocy LOAD DATA INFILE.
Baza jest w utf-8, plik csv również.

Fragment pliku:
1|0|"Kurtki, ocieplacze"
2|0|"Bluzy, swetry"
3|0|"Koszulki, czapki"


Wykonałem takie zapytanie:
  1. LOAD DATA INFILE 'D:\/podkategorie.csv'
  2. INTO TABLE baza1.podkategorie
  3. CHARACTER SET 'utf8'
  4. FIELDS TERMINATED BY '|'
  5. LINES TERMINATED BY '\n\r'


Niestety pojawił się błąd odnośnie "CHARACTER SET..." - co wpisałem źle? Dokładnie taką opcję znalazłem w manualu. Bez tej opcji zapytanie się wykonuje, a w tabelce lądują krzaki.

Z góry dziękuję za pomoc.
Pozdrawiam,

Ten post edytował Liberator 20.02.2008, 09:36:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Liberator
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.09.2002
Skąd: Kraków

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


faktycznie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) baza jest 5.0.27

Znajomy podesłał mi jeszcze inne rozwiązanie, polegające na zmianie domyślnego kodowania bazy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Okazało się, że domyślna strona kodowa bazy:
  1. SHOW CREATE DATABASE NAZWA_BAZY

..to latin1. - a jedynie tabelki wszystkie były w utf8. Zmieniałem wczoraj co prawda kodowanie - ale całej instancji w my.cnf

Wykonałem więc:
  1. ALTER DATABASE NAZWA_BAZY CHARACTER SET utf8 COLLATE utf8_polish_ci;

i odpaliłem LOAD DATA INFILE bez CHARACTER SET 'utf8' i jest wszystko pięknie z ęąółćżź (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

W jaki sposób używa się tego character_set_filesystem?
To jest jakaś zmienna zaszyta w plikach konf. ?

Napotkałem kolejny problem - kiedy próbuję w tym samym zapytaniu zdefiniować kolejność kolumn:
  1. LOAD DATA INFILE 'D:\prod.csv'
  2. INTO TABLE baza.tabela(kol1, kol2, kol3)
  3. FIELDS TERMINATED BY '|'
  4. LINES TERMINATED BY '\n\r'

błąd:

Script line: 1 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 '\n\r'' at line 3

Bez podania kolejności kolumn w tym nawiasie dane są zaczynają być importowane, ale pojawia się błąd z niespełnieniem FK, bo w pliku dane są w złej kolejności.

Ten post edytował Liberator 20.02.2008, 20:43:10
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: 4.10.2025 - 08:26