Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Polskie znaki w PDO
Forum PHP.pl > Forum > Przedszkole
Raven1122
Witam, mecze sie juz od godziny z tymi polskimi znakami w bazie danych. Serfuje po google tu kaza ustawiac utf8_unicode tam general juz sam sie pogubilem. Moj problem jest taki ze ani w phpmyadmin ani na stronie nie wyswietlaja mi sie polskie znaki tylko ó sie wyswietla reszta przedstawiana jest jako ?


Polaczenie z baza danych
  1. $conn = new PDO ('mysql:host=' . HOST . ';dbname=' . DB . '', USERNAME, PASSWORD);
  2. $conn->query('SET NAMES utf8');
  3. $conn->query('SET NAMES utf8 COLLATE utf8_general_ci');


Wszystkie pliki mam pozapisywane z formatowaniem UTF-8(Bez BOM)

no i

  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


porownywanie znakow w phpmyadmin: utf8_general_ci

No i probowalem juz unicode i polish ale nadal nic, mam juz dosc, czy ktos moze pomoc??
Sebek87
  1. $conn = new PDO ('mysql:host=' . HOST . ';dbname=' . DB . '', USERNAME, PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
viking
Nie meta tylko
  1. <?php header('Content-type: text/html; charset=UTF-8'); ?>

Dane zapisałeś poprawnie jako UTF?
Raven1122
1 Odpowiedz nic nie dala, Viking skrypt includuje plik ze stylem, a phpmyadmin tez sa znaki zapyanie moze cos wlasnie z phpmyadmin nie tak?
Sebek87
Dodaj dane przez phpmyadmina, sprawdź jak się wyświetlają na stronie i te dwie metody "query" usuń, zostaw to przy tworzeniu obiektu,
Raven1122
Sebek jak dodaje przez phpmyadmine ez jest ? wiec chyba tam lezy problem, query usunalem tongue.gif
viking
To mała uwaga:
On windows, you need php >= 5.3.1 for MYSQL_ATTR_INIT_COMMAND to work.
Raven1122
PHP Version :
5.3.13
tab
jesli chodzi o strone to po pierwsze, podstawowe pytanie, jakiego edytora uzywasz? osobiscie mialem dokladnie taki sam problem jak Ty. uzywam notepad++, wiec sposob ktory pozwolil mi sie pozbyc problemow z krzaczkami raz na zawsze to po prostu ustawienie kodowania 'UTF bez BOM'. ustaw tez wlasciwe kodowanie w <meta>.
a co do polskich znakow w bazie danych to jest to ciekawa sprawa. przynajmniej u mnie wyglada to tak, ze jak ustawie juz to kodowanie utf w bazie danych to po dodaniu np. 'żółw' w phpmyadminie figuruje on jako 'żółw'. gdy nastomiast sprobuje go odczytac z poziomu php dostaje 'aeól1w' czy cos tego typu. jezeli chcesz miec polskie znaki to dodawaj rekordy z php. wtedy z kolei w phpmyadmienie 'żółw' bedzie wyladał jak 'aeól1w', ale nei przeyjmuj sie bo przy odczytywaniu beda polskie znaki. takie to wszystko jest pokrecone tongue.gif
Raven1122
uzywam notepad++ i mam kodowanie utf-8 bez bom ale mialem nie jedna baze danych i mialem tu i tu polskie znaki
Sebek87
No ale notepad nie ma nic do rzeczy skoro nawet jak dodajesz przez pma wywala "?". Porównywanie znaków dla tabel masz na 100% utf8_general_ci?
Raven1122
tak ale teraz zauwazylem w phpmyadmin na glownej stronie takie cos:Kodowanie znaków serwera: UTF-8 Unicode (utf8)
Sebek87
Czekaj jeszcze raz po kolei:

Jak tworzyłes nową tabelę, na której teraz testujesz to wybrałes dla niej metodę porównywania napisów utf8_general_ci?
Jak tworzyłeś w niej pole to też wybrałeś to kodowanie?
Jak dodajesz rekord przez phpmyadmina dodstajesz "?", jak dodajesz przez skrypt też dostajesz "?"?
W pma w podglądzie SQL po dodaniu rekordu też dostajesz "?"?
Raven1122
Tak, Tak, nie probowalem jescze ze skryptu, Tak
Sebek87
No to spróbuj dodać przez skrypt nowy rekord.

I zerknij na str. głównej phpmyadmina "System porównań dla połączenia MySQL:" czy jest ustawione na utf8_unicode_ci.
Raven1122
tez sa questionmark.gif jak ze skryptu

Wyglada to tak:


Serwer: localhost (localhost via TCP/IP)
Oprogramowanie: MySQL
Wersja oprogramowania: 5.5.24-log - MySQL Community Server (GPL)
Wersja protokołu: 10
Użytkownik: root@localhost
Kodowanie znaków serwera: UTF-8 Unicode (utf8)
Sebek87
A system porównań dla połączenia MySQL?
Raven1122
nie widze nigdzie takiej informacji
Sebek87
Strona główna phpmyadmin'a Ustawienia ogólne.
Raven1122
Sortowanie połączenie z serwerem Dokumentacja: utf8_general_ci
Sebek87
Hmm, zrób screen, bo wychodzi na to, że masz złe porównywanie znaków dla połączenia.
Sebek87
Wszystko wygląda w porządu, mam taką samą conf. nie wiem, może ktoś inny ma pomysł? Z MyISAM to samo?
Raven1122
MyIsam tez wybrzydza polskie literki

Czy ktos jest jescze w stanie mi pomoc?? sad.gif

O jejka! rozwiazalem problem, wina lezala po stronie pma i zupelnie przypadkowo znalazlem rozwiazanie. Metoda porownywania znakow dla kolumny title pozostawala szwedzkan ie wiem dlaczego i musialem recznie ja zmienic
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.