![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 23.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzień dobry,
od dwóch dni przekopuję się przez książki, fora i rózne dokumentacje odnośnie sytuacji, w której się znalazłem, jednkaże - bez sukcesu. Tak wygląda sytuacja. Strona jest kodowana w utf8, w phpMyAdmin kodowanie znaków serwera ustawione jest na UTF-8 Unicode (utf8) i jest jeszcze w ustawieniach ogólnych parametr "Sortowanie połączenia z serwerem", ustawione na utf8_general_ci. Z kolei metoda porównywania napisów w samej bazie jest ustawiona na utf8_general_ci, choć doczytałem, że nie jest to parametr kluczowy, bo nei określa strony kodowej. Dane utworzone i zapisane zostały w MS Excel. Na potrzeby bazy zapisałem plik jako CSV (rozdzielany przecinkami), następnie w Notepad++ przekonwertowałem zawartość na format UTF-8 i zapisałem. Tak przygotowany wsad zaimportowałem do MySQL, wykorzystując PMA. Przy imporcie kodowanie znaków pliku ustawione były jako utf-8, zaś format - CSV. Po imporcie polskie znaki w bazie są prawidłowo interpretowane. Problem pojawia się, kiedy dane z bazy zaciągane są na stronę www. Na chwilę obecną wszystko robione jest lokalnie, z wykorzystaniem ostatniej wersji aplikacji WebServ (wersje: Apache 2.2.22; PHP 5.3.20; MySQL 5.5.21; Perl 5.14.2; MySQL Control 0.9.4; phpMyAdmin 3.5.5). Dodatkowo, śladem porad z forum dokonałem konwersji strony kodowej zarówno bazy, jak i tabel komendami:
Bez zmian. Do łączenia się z bazą korzystam ze skryptu, wykorzystującego klasę dbconn o treści:
Czytałem, że mozna zmienić kodowanie podczas łączenia się z bazą, ale nie mam pojęcia jak i w którym miejscu. Będę wdzięczny za konstruktywne wskazówki, bez odsyłania do innych postów, for, czy porad "w ciemno" - wiele z nich już przerabiałem. Pozdrawiam, Jacek |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 376 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Korzystasz z przestarzałych wersji oprogramowania w tym rozszerzenia mysql którego już nie ma w php. Poczytaj
https://prophp.pl/article/3/kodowanie_znakow_na_stronach_www -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 23.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
W takim razie muszę zmieniś serwer, nieprawdaż? Mam zainstalowany drugi serwer - XAMPP, ale tez z kolei ma problem z funkcją mysql_connect (), gdyż PHP jest w wersji 7.3, a ta nie obsługuje już funkcji mysql_connect (). Jak to mogę przerobić? KOd dostępu już przesłałem, teraz zaś wrzucę fragment kodu inicjujący połączenie i wybierający z bazy dane.
Będę wdzięczny za podsunięcie rozwiązania, które zastąpi mysql i pozwoli się logować do bazy w nowszysch wersjach PHP. Spotkałem się z mysqli czy też PDO - które rozwiązanie będzie lepsze w moim przypadku? Ten post edytował kecajs 27.10.2019, 22:22:54 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 376 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Pod względem szybkości wymiany łatwiej będzie pozamieniać na mysqli.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 23.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Na chwilę obecną zmieniłem serwer lokalny na XAMPP, zaś dostęp do bazy odbywa się poprzez mysqli - faktycznie okazało się to prostrze. Jednakże pojawił się problem przy imporcie danych z pliku CSV. Struktura bazy składa siez dwóch tabel (8 i 11 kolumn), bez A.I. bo pierwsza kolumna to "lp", a baza jest stała - nic do niej nie będzie dodawane, chodzi tylko o łatwiejszy sposób prezentacji, niż robienie tabeli na ok. 400 wierszy. Dlatego też nie dokładałem pustej pierwszej kolumny, jak to zalecają na różnych forach. Podczas importu pojawił się błąd "Niewłaściwa suma kolumn w CSV w linii 1". W poprzedniej wersji serwera - WebSerw, nie było żadnych problemów z importem. Na wszelki wypadek jednakże dołożyłem pustą kolumnę i zaczytana został pierwszy wiersz i pojawił się komunikat błędu "Niewłaściwa suma kolumn w CSV w linii 2". NIe mam pojęcia, co namieszałem i gdzie robię błąd. Będę wdzięczny za podpowiedź jak powinieniem zaimportować dane z arkusza Excela do bazy przez phpMyAdmina.
OK, temat ogarnięty, polskie znaki są, połączenie z bazą również - wykorzystałem mysqli. Podsumowując, problem polegał na zastosowaniu starego oprogramowania (WinServ) i nie obsługiwanej już funkcji -mysql(). Zamiana serwera na XAMPP i wykorzystanie funkcji mysqli() rozwiązało całkowicie problem. Temat do zamknięcia. Ten post edytował kecajs 28.10.2019, 22:14:52 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 2.05.2025 - 04:35 |