Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z kodoawniem
Forum PHP.pl > Forum > Przedszkole
-TomASS-
Cześć,

Łaczę się z bazą danych przy pomocy mysqli, na początku (przed zapytaniem) wywołuję:
Kod
mysqli::set_charset("utf8");


i wszystko było ok, do czasu przeniesienia danych na inny serwer.

Te dane co były wprowadzone wcześniej, mają poprawnie zapisane polskie znaki. Wprowadzają nowe dane mam zamiast poliskich znaków, tylko znaki zapytania :/
Co dziwne, jak skasuję set_charset (get_charset pokazuje latin1) jest poprawnie wprowadzane, ale za to "stare" dane są ze znakami zapytania sad.gif

Co się mogło stać podczas przenoszenia lub co zmienić w bazie danych aby to naprawić (podejrzewam, ustawienie w bazie danych)?
Turson
Wejdź w bazę danych i sprawdź kodowanie
TomASS
Cytat
DEFAULT_CHARACTER_SET_NAME
latin1


Czy mogę to zmienić (bez naruszania danych)?
ZaXaZ
  1. ALTER DATABASE `nazwa_bazy`
  2. DEFAULT CHARACTER SET utf8
  3. COLLATE utf8_unicode_ci

lub jak dla samej tabeli
  1. ALTER TABLE `nazwa_tabeli`
  2. DEFAULT CHARACTER SET utf8
  3. COLLATE utf8_unicode_ci
TomASS
Niestety

  1. ALTER DATABASE `nazwa_bazy`
  2. DEFAULT CHARACTER SET utf8
  3. COLLATE utf8_unicode_ci


nic nie dało sad.gif
ZaXaZ
Cytat(TomASS @ 28.04.2014, 23:56:57 ) *
Niestety

  1. ALTER DATABASE `nazwa_bazy`
  2. DEFAULT CHARACTER SET utf8
  3. COLLATE utf8_unicode_ci


nic nie dało sad.gif


zgaduje że testowałeś tylko obecne dane? - bo tylko do każdego nowego już powinno działać; a jak "przekonwertowac" to nwm.

może to coś pomoże.
TomASS
Cytat(ZaXaZ @ 29.04.2014, 00:10:13 ) *
zgaduje że testowałeś tylko obecne dane? - bo tylko do każdego nowego już powinno działać; a jak "przekonwertowac" to nwm.

Pudło sad.gif
Dla nowych nie działa (dodawanie) a dla strarych jest ok (nic się nie zminiło)

Cytat(ZaXaZ @ 29.04.2014, 00:10:13 ) *
może to coś pomoże.

Wywołując
  1. SHOW VARIABLES LIKE 'char%'

Dostaję:
Kod
character_set_client     utf8
character_set_connection     utf8
character_set_database     utf8
character_set_filesystem     binary
character_set_results     utf8
character_set_server     utf8
character_set_system     utf8
character_sets_dir     /usr/share/mysql/charsets/

ZaXaZ
to może lepiej, pokaż kod jakim dodajesz, bo pewnie w im problem; lub w hostingu jeśli zmieniłeś, ale lepiej pokaż się upewni ;p
TomASS
Mam klasę, która dziedziczy po mysqli a w niej:

  1. parent::set_charset("utf8");
  2. $query = $this->query($this->currentQuery);
ZaXaZ
Cytat(TomASS @ 29.04.2014, 00:25:48 ) *
Mam klasę, która dziedziczy po mysqli a w niej:

  1. parent::set_charset("utf8");
  2. $query = $this->query($this->currentQuery);


A jakie zapytanie sql? zrób może pod tym $query ... var_dump($this->currentQuery); i pokaż co zwraca + jakie masz zapytanie
TomASS
Zrobiłem:

  1. echo $db->currentQuery;
  2. echo $db->character_set_name();

i dostałem:
Kod
CALL dodaj('00001122446',60270333,'ŁĄĆ','ŹĆŃ','INFO','ÓŚĘ',b'1',@retValue);utf8
ZaXaZ
Cytat(TomASS @ 29.04.2014, 00:37:57 ) *
Zrobiłem:

  1. echo $db->currentQuery;
  2. echo $db->character_set_name();

i dostałem:
Kod
CALL dodaj('00001122446',60270333,'ŁĄĆ','ŹĆŃ','INFO','ÓŚĘ',b'1',@retValue);utf8


jak wszystko działa to prawdo podobnie plik zmienił kodowanie, upewnij się czy masz utf-8 pliku (bez bom...)
TomASS
Cytat(ZaXaZ @ 29.04.2014, 00:46:24 ) *
jak wszystko działa to prawdo podobnie plik zmienił kodowanie, upewnij się czy masz utf-8 pliku (bez bom...)


Bez bom... ? Co to znaczy?
ZaXaZ
Cytat(TomASS @ 29.04.2014, 00:53:46 ) *
Bez bom... ? Co to znaczy?

wiki, ale chodzi o to że plik ma mieć samo utf-8 bez żadnych dodatków.
TomASS
Nic.

Co dziwne, kasuję:
  1. parent::set_charset("utf8");

a więc powinno być kodoawnie domyślne (czyli utf8),

sprawdzam:
  1. $db->character_set_name();

i dostaję
latin1 wacko.gif
ZaXaZ
  1. ALTER TABLE `tabela` CONVERT TO CHARACTER SET utf8;
TomASS
Zrobiłem tak:
1. skopiowałem tabelę do "tabela_test" (przy pomocy PhpMyAdmina)
2. ustawiłem na niej ALTER TABLE `tabela` CONVERT TO CHARACTER SET utf8;
3. działa smile.gif

Natomiast ustawiając na tabela nie działa sad.gif
ZaXaZ
Cytat(TomASS @ 29.04.2014, 10:10:34 ) *
Zrobiłem tak:
Natomiast ustawiając na tabela nie działa sad.gif

tzn że na oryginale nie działa a na kopii działa? ohmy.gif. Jak tak to byś mógł skasować oryginał a na kopii tylko nazwę zmienić biggrin.gif
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.