Wysyłanie polskich znaków do bazy danych

0

Szanowni,

Mam problem z swoim skryptem. Napisałem prosty kod który dodaje do bazy danych nowe rekordy. Niestety w żaden sposób nie potrafię dodać polskich znaków.
W przypadku jeżeli wpiszę w phpmyadmin ręcznie polskie znaki jak najbardziej mi dodaje z polskimi znakami. Natomiast za pomocą mojego skryptu dodaje znaki "??". Poniżej zamieszczam fragment kodu. W którym miejscu popełniam błąd?

function nawiazaniePolaczeniaMSQL()
        {
             ////Definicja zmiennych
             $adres_ip_serwera_mysql_z_baza_danych = 'localhost';
             $nazwa_bazy_danych = 'nazwa';
             $login_bazy_danych = 'login';
             $haslo_bazy_danych = 'haslo';
             

             /////Polaczenie z baza MSQL
             if (!mysql_connect($adres_ip_serwera_mysql_z_baza_danych, $login_bazy_danych,$haslo_bazy_danych) ) 
                 {
                     echo 'Nie moge polaczyc sie z baza danych';
                     exit (0);
                 }
             ///Wybor bazy MSQL na serwerze
             if (!mysql_select_db($nazwa_bazy_danych) ) 
                 {
                     echo 'Blad otwarcia bazy danych';
                     exit (0);
                 }       
        }
      public function zapisMSQL()
      {
      $this->nawiazaniePolaczeniaMSQL();
      $oooo=mysql_query("SET NAMES utf8");
      $oooo=mysql_query("SET CHARACTER SET utf8");
      $oooo=mysql_query("SET collation_connection = utf8_polish_ci");
      $this->zapisKategoriidoMSQL(9999,ĄŚiągawka);
      }
        function zakonczeniePolaczeniaMSQL()
        {
            //Zamkniecie polaczenia z baza danych
             if (!mysql_close()) 
                {
                    echo 'Nie moge zakonczyc polaczenia z baza danych';
                    exit (0);
                }
        }
        function zapisKategoriidoMSQL($id_category,$name)
        {

            $ins = mysql_query("INSERT INTO pr_category_lang SET id_category='$id_category',name='$name'") or die(mysql_error());
        }
1

Na początku skryptu wywołaj funkcję

 mysql_set_charset ( "utf-8" )
0

Czyli jak rozumiem ma wyglądać w ten sposób? Jeżeli tak to nic to nie zmienia. Dalej są znaki zapytania. Dopiero jak ręcznie zmienię za pomocą phpmyadmin to wtedy widnieją prawidłowe polskie znaki.

public function zapisMSQL()
      {
      $oooo=mysql_set_charset ( "utf-8" );
      $this->nawiazaniePolaczeniaMSQL();
      $oooo=mysql_query("SET NAMES utf8");
      $oooo=mysql_query("SET CHARACTER SET utf8");
      $oooo=mysql_query("SET collation_connection = utf8_polish_ci");
      $this->zapisKategoriidoMSQL(9999,ĄŚiągawka);
      $this->zakonczeniePolaczeniaMSQL();
      }

0

Widzę, że miałeś już w kodzie podane set_names, a jak tworzyłeś bazę danych i na jakim systemie pracujesz ?

0

Baza została stworzona automatycznie przez Prestashop.
Co masz na myśli na jakim systemie?

0

Mój system operacyjny to Windows 10. Strona znajduje się na hostingu zewnętrznym.
Utworzyłem ręcznie bazę danych. Dalej to samo widnieje. Dodaje rekord do bazy lecz gdzie są polskie znaki to wpisuje "?"

0

UTF8

0

A weź spróbuj na tym skrypcie żeby ci w html wyprintował polskie znaki na stronie.

0

Nie wyświetlił polskich znaków.
Edytowałem rekord w bazie danych i wprowadziłem ręcznie polski znak. W phpmyadmin wyświetlił dobrze lecz gdy wypisałem go za pomocą skryptu na stronie www umieścił "?". Problem z kodowaniem html?

0

Spróbuj jeszcze dodać:

SET CHARACTER_SET_CONNECTION=utf8

1 użytkowników online, w tym zalogowanych: 0, gości: 1