Witam,

Używam pakietu DB do łączenia i pobierania danych z bazy danych. Niestety nie mam tam polskich znaków. Co mogę zmienić w klasie, aby skrypt pobierał mi polskie znaki z bazy.

  1. class DBManager {
  2. private static $_Connection = null;
  3. private static $_Transaction = FALSE;
  4.  
  5. private function __construct() {}
  6.  
  7. // DNS
  8. public static function DNSInit() {
  9. return DB_TYPE . '://' . DB_USERNAME . ':' . DB_PASSWD . '@' . DB_PROTOCOL . '(' . DB_HOST . ')/' . DB_NAME;
  10. }
  11.  
  12. // Połączenie z bazą danych
  13. public static function Init() {
  14. if(DB::isError(self::$_Connection = DB::connect(self::DNSInit())))
  15. throw new Exception ('Nie można połączyć z bazą danych');
  16. }
  17.  
  18. // Wykonanie zapytania
  19. public static function &Query($sqlQuery) {
  20. if (self::$_Connection) {
  21. if (DB::isError($result = self::$_Connection->Query($sqlQuery))) {
  22. if (self::$_Transaction) Transaction('rollback');
  23. throw new Exception($result->getMessage(), $result->getCode());
  24. }
  25. return $result;
  26. } else throw new Exception('Brak połączenia z bazą danych');
  27. }
  28.  
  29. //Obsługa transakcji bazodanowych
  30. public static function Transaction($type) {
  31. switch(strtolower($type)) {
  32. case 'begin':
  33. self::Query($type);
  34. self::$_Transaction = true;
  35. break;
  36. case 'commit':
  37. case 'rollback':
  38. self::Query($type);
  39. self::$_Transaction = false;
  40. break;
  41. default: throw new Exception('Nieznany rodzaj operacji');
  42. }
  43. }
  44. }


jeśli łączę się tradycyjne, czyli:

  1. $connect = @mysql_connect (SQL_HOST, SQL_USER, SQL_PASS) or die ("Brak połączenia");
  2. mysql_query("SET NAMES utf8");
  3. mysql_select_db (SQL_NAME, $connect) or die ("Nie można wybrać bazy danych");


jest ok.