Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak zmienić skrypt PHP żeby używał określonego kodowania z SQL
krystkon
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 31.01.2008

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


Witam!

Jestem jeszcze zielony więc proszę pisać do mnie na poziomie przedszkola (IMG:http://forum.php.pl/style_emoticons/default/czarodziej.gif) .
Używam zagranicznego konta hostingu na serwerze, na którym domyślnym kodowaniem zarówno dla PHP jak i MySQL jest zupełnie coś innego niż potrzebne mi kodowanie latin2.

Stworzyłem sobie jednak bazę danych z metodą porównywania napisób w latin2 i wszystko w niej działa dobrze.
Uruchomiłem sobie aplikację PHP na tym serwerze (osCommerce) i niestety ta aplikacja zawiera w sobie taki błąd (nie wiem tego na pewno - ale tak się tylko domyślam) - że jej skrypty nie ustalają sposobu kodowania przy łączeniu się z bazą danych albo je ustalają błędny sposób kodowania. I choć w bazie danych wszsytko jest OK zapisane - na stronie pojawiają się (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) . Sądzę, że PHP używa domyślnego dla serwera sposóbu kodowania przy łączeniu się z bazą i jest to kodowanie inne niż latin2.

Znalazłem takie rozwiązanie, które dorzucam do każdego skryptu php:
Kod
mysql_query("SET CHARACTER SET latin2");
   mysql_query("SET NAMES latin2");

i większość zaczyna działać poprawnie - ale nie wszystko.

I teraz mam np. taki skrypt, który zawiera w sobie element:
Kod
<?php echo tep_customer_greeting(); ?>


I ten element wyświetla mi się na stronie niepoprawnie. Czy mogę jakoś w zakresie tego elementu
Kod
<?php echo tep_customer_greeting(); ?>
umieścić
Kod
mysql_query("SET CHARACTER SET latin2");
   mysql_query("SET NAMES latin2");
i jeżeli tak to w jaki sposób - musi być chyba jakiś element poprzedający - bo samo wkeljenie tego kodu nic nie zmienia.

Czy to jest w ogóle sensowne rozwiązanie, żeby w taki sposób zmieniać oryginalne skrypty PHP?
Jak do tej pory nie znalazłem innego sposobu rozwiązania tego problemu - poza ewentualnie przejściem na polskie konta webhostingu - czego nie chcę z wielu względów.

Czy być może w skryptach PHP mam szukać jakiś ustawień takiego łączenia się z bazą danych - co generuje błąd?
Zastanwiam się nad tym pownieważ w ramach tego konta korzystam z phpMyAdmin do przeglądania bazy MySql i o dziwo - pomimo, że ta aplikacja jest również oparta na PHP wszytko wyświetla się poprawnie i nie potrzeba zmianiać skryptów. To że wyświetla się poprawnie wiem na pewno bo jeszcze sprawdzałem za pomocą MySQL Query Browser.

Proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
SirZooro
post
Post #2





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

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


tep_customer_greeting() to jest funkcja, więc zerknij do niej co ona robi - może tam da się dodać te dwie komendy.
Go to the top of the page
+Quote Post
gutek84
post
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 4
Dołączył: 9.10.2007
Skąd: Morąg

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


Jezeli poruwnujesz np. dwa varchary to musza miec te same kodowanie. Poszukaj w poszczegulnych kolumnach w tabelach w bazie jakie ustawione sa kodowania. Wszystkie porownywane musza byc identyczne. Dobrym narzedziem do tego jest phpMyAdmin. Kodowanie zawsze bedzie ustawione takie jakie masz w bazie! I jesli porownujesz tabele ze swojej tylko bazy to musisz miec rozne kodowania!
pozdr
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 20:48