Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Nie chodzą mi polskie znaki
Quantino
post 12.01.2010, 15:02:12
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 19.11.2009

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


Witam, mój problem dotyczy tego, że nie chodzą mi polskie znaki w bazie danych MySQL.

Jeżeli importuję pliki to daję kodowanie w pliku CSV na utf-8 i to samo ustawiam w imporcie ale znaki nie działają, zamiast nich są znaki zapytania, a muszę zaimportować bazę, która ma w sobie polskie znaki.

Utworzyłem sam bazę danych za pomocą SQL w PhpMyAdmin i mam polskie znaki ale gdy pobieram to przez PHP to polskich znaków już nie ma.

Kolejnym problemem jest to, że nawet, gdy napiszę w PHP całą bazę danych i otworzę aplikację to wszystko przebiega pomyślnie a polskich znaków w bazie nie ma.

Zależy mi na tym, abym miał te znaki bo nie mam jak się uczyć jeżeli nawet nie mogę poprawnie korzystać z bazy danych.

Miałem taki problem na Vertrigo i teraz zainstalowałem XAMPP ale jest nadal to samo.

Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
Fifi209
post 12.01.2010, 15:27:18
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Temat: MYSQL Polskie znaki

hmm, nie można tam? Pewnie nawet nie zaglądałeś.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
piotrekk
post 12.01.2010, 19:28:51
Post #3





Grupa: Zarejestrowani
Postów: 123
Pomógł: 2
Dołączył: 13.11.2006

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


wywołaj to przed pobraniem danych z BD

$sql = mysql_query("SET names utf8", $connection);

i na pewno będzie działać
Go to the top of the page
+Quote Post
Quantino
post 12.01.2010, 20:02:00
Post #4





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 19.11.2009

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


Ok, dodałem tą linijkę kodu, którą podał piotrekk i jest dobrze na stronie wyświetlana ta baza, którą stworzyłem w PhpMyAdmin bo w niej wyświetlają się polskie znaki.

Ale mam jeszcze problem z tą bazą, którą importuję ponieważ w niej w bazie danych pojawiają się te znaki zapytania i wtedy jak wyciągam w skrypcie PHP te dane to są te krzaki, mógłby mi ktoś powiedzieć jeszcze jak ten problem rozwiązać ?
Go to the top of the page
+Quote Post
Maciek1705
post 12.01.2010, 21:30:03
Post #5





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


ja z mysqla mocny nie jestem ale wiem że jest polecenie które zmienia kodowanie całej bazy np z win-1250 na utf oczywiście polecenie jest w mysql tylko nie pamiętam jak ono szło ale powinieneś znaleźć na googlach
Go to the top of the page
+Quote Post
minolone
post 13.01.2010, 00:08:02
Post #6





Grupa: Zarejestrowani
Postów: 141
Pomógł: 24
Dołączył: 21.06.2008

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


Witam.

Na forum znalazłem hurtową zmianę kodowania w bazie danych jeżeli miałbyś kodowanie inne niż UTF-8 oto link do tematu.

Jeżeli masz bazę w pliku sql lub innym otwórz go w jakims edytorze i skonwertuj na utf-8, zapisz plik

przykładowa baza

  1. CREATE TABLE IF NOT EXISTS `users` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `name` varchar(20) NOT NULL,
  4. `login` varchar(20) NOT NULL,
  5. `password` char(40) NOT NULL,
  6. `email` varchar(255) NOT NULL,
  7. `date` date NOT NULL,
  8. PRIMARY KEY (`id`),
  9. UNIQUE KEY `login` (`login`),
  10. UNIQUE KEY `email` (`email`)
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


zobacz że jest coś takiego "DEFAULT CHARSET=utf8" sprawdź czy przypadkiem nie masz jakiegoś latin ustawionego,

ustawienia bazy danych

  1. System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
  2. System porównań dla połączenia MySQL: utf8_unicode_ci


wtedy nie bedziesz potrzebował nawet przy łączeniu się z bazą tego co ci kolega podał, i najważniejsze w head

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


powinno śmigać bezproblemowo. 

Go to the top of the page
+Quote Post
Quantino
post 13.01.2010, 11:29:50
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 19.11.2009

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


Trochę źle się wyraziłem, bo ja chcę wgrać do bazy danych same dane.

Stworzyłem sobie bazę danych i w nich tabele, metoda porównywania napisów jest ustawiona na utf8_unicode_ci, gdy importuje zawartość tabeli (mam ją w pliku CSV) to oczywiście mam to przekonwertowane na utf-8 i tak samo ustawiam w PhpMyAdmin przy imporcie ale nadal są te znaki zapytania chociaż nie powinno ich być.
Go to the top of the page
+Quote Post
minolone
post 16.01.2010, 12:17:33
Post #8





Grupa: Zarejestrowani
Postów: 141
Pomógł: 24
Dołączył: 21.06.2008

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


Kolego pokaż ta swoją bazę danych, jeżeli ustawienia w phpmyadmin widzisz takie jak ci napisałem że powinny być to powinno być wszystko ok, może coś z bazą masz nie tak.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.05.2025 - 06:22