ďťż

Polskie znaki w PHP + MySQL

       

Podstrony


telcocafe

W bazie MySQL, kiedy przeglądam(/wysyłam do) zawartość przez phpMyAdmin tekst jest w porządku, natomiast gdy chcę zobaczyć, to co zostaje przesłane do przeglądarki wyskakują mi same znak '?'. Próbowałem zmiany kodowania w <meta> z iso-8859-2 na UTF-8 ale nic to nie daje, wręcz przeciwnie, zakres źle wyświetlanych znaków powiększa się o 'ó', które do tej pory wyświetlało się dobrze. Zmeiniałem też metodę porównywania znaków w samej bazie. Bez efektu.

Ciekawe jest również, że na przy wykonaniu innego elementu kodu w tym samym pliku, przy właściwie identycznym kodzie, wszystko wyświetla się dobrze.

Proszę o pomoc, nie mam pojęcia co z tym zrobić.



Spróbuj przed połączeniem:
mysql_query("SET NAMES latin2");

1. Podaj, jakie masz porównywanie tekstu w wierszach (!!!), a nie bazie (bo zmienisz w bazie, nie zmienisz w wierszach i co zostanie? W wierszach takie, jak było...).
2. Wywołaj kod:
mysql_query('SET CHARSET latin2');
Będzie on różny w zależności od sposobu łączenia się z bazą i ustawionego porównywania tekstu. Aha - u niektórych działa "SET NAMES", u innych "SET CHARSET". Trzeba przetestować obydwa.


1. Podaj, jakie masz porównywanie tekstu w wierszach (!!!), a nie bazie (bo zmienisz w bazie, nie zmienisz w wierszach i co zostanie? W wierszach takie, jak było...).
Źle się wyraziłem, chodziło mi właśnie o metodę porównywania w wierszach, aczkolwiek i tak w każdej tabeli mam utf8_polish_ci.

Po dodaniu mysql_query("SET NAMES latin2");
Wywala Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /var/www/sites/yoyo.pl/b/c/bcr/connect.php on line 3 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /var/www/sites/yoyo.pl/b/c/bcr/connect.php on line 3

a mysql_query('SET CHARSET latin2'); kończy się tym:
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /var/www/sites/yoyo.pl/b/c/bcr/connect.php on line 2 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /var/www/sites/yoyo.pl/b/c/bcr/connect.php on line 2

Nie jestem pewien, może źle to umieszczam:

<?php session_start(); include_once('languages/main.php'); require_once('smarty/Smarty.class.php'); $smarty = new Smarty; $smarty->template_dir = "templates/"; $smarty->compile_dir ='smartownia/templates_c/'; $smarty->config_dir = 'smartownia/configs/'; $smarty->cache_dir = 'smartownia/cache/'; $smarty->display('index.tpl'); require_once('connect.php'); // Zawartość connect.php //<?php //mysql_query("SET NAMES latin2"); // lub mysql_query('SET CHARSET latin2'); //$polaczenie = mysql_connect('###', '###', '###'); //if (!$polaczenie) { // echo "Połaczenie z bazą nie zostało nawiązane."; //} //if (!@mysql_select_db('db242481', $polaczenie)) { // echo "Wybranie bazy danych nie możliwe."; //} //?> ... dalej reszta skryptu ?>
Użytkownik Sirtarius edytował ten post 11 marzec 2007, 22:59


no, ale najpierw robisz zapytanie, a potem łączysz się z bazą ? chyba odwrotnie :lol:


no, ale najpierw robisz zapytanie, a potem łączysz się z bazą ? chyba odwrotnie :lol:
Zasugerowałem się tym:

Spróbuj przed połączeniem:
mysql_query("SET NAMES latin2");


Po umieszczeniu po połączeniu wszystko gra. Dzięki wielkie wszystkim, którzy wypowiedzieli się w temacie.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.