![]() |
![]() ![]() |
![]() |
![]()
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:
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 |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
skopiowałem twoje zapytanie i u mnie działa - spokojnie sprawdź, czy wszystko ci się zgadza (kodowanie bazy i plików, ilość i typy pól, nazwa bazy i tabeli...)
pokaż może też ten komunikat błędu co dostajesz, bo wg mnie nie powinien on mieć nic wspólnego ze składnią CHARACTER SET... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 10.09.2002 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
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 'CHARACTER SET 'utf8'
FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n\r'' at line 3 Najdziwniejsze jest to, że bez tego CHARACTER SET zapytanie nie zwraca żadnych błędów... |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
a nie brakuje ci gdzieś spacji miedzy kolejnymi liniami zapytania? pokaż ten string jak wygląda po stronie PHP... a jeżeli tego nie wołasz z PHP, to spróbuj wpisać całość w 1 linijce i ze średnikiem na końcu...
Ten post edytował nevt 20.02.2008, 13:08:38 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 10.09.2002 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
ja to wpisuję "z palca" bezpośrednio w MySQL QueryBrowser
|
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
a jaką masz wersję MySQL Query i Serwera ? Bo u mnie kopia (dosłownie: skopiuj - wklej) hula w MySQL Browserze aż miło - specjalnie założyłem odpowiedni plik i tabelkę w bazie, że by nie poprawiać twojej składni...
EDIT: wg mojego manuala, CHARCTER SET hula w LOAD DATA INFILE dopiero od wersji 5.0.38 serwera MySQL EDIT2: co do starszych wersji - As of MySQL 5.0.19, the character_set_filesystem system variable controls the interpretation of the filename. Ten post edytował nevt 20.02.2008, 13:17:54 |
|
|
![]()
Post
#7
|
|
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:
..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:
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:
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 |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 10.09.2002 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję bardzo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Mam od razu pytanie o EKSPORT do csv (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wykonuję:
niestety zawartość NULL jest zapisywana do pliku jako \N - co zrobić, żeby było tam zapisywane NULL albo nic; po prostu || |
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 18:31 |