Wysyłanie polskich znaków do bazy danych

Wysyłanie polskich znaków do bazy danych
  • Rejestracja: dni
  • Ostatnio: dni
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?

Kopiuj
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());
        }
pol90
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1181
1

Na początku skryptu wywołaj funkcję

Kopiuj
 mysql_set_charset ( "utf-8" )
  • Rejestracja: dni
  • Ostatnio: dni
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.

Kopiuj
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();
      }

pol90
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1181
0

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

  • Rejestracja: dni
  • Ostatnio: dni
0

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

  • Rejestracja: dni
  • Ostatnio: dni
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 "?"

  • Rejestracja: dni
  • Ostatnio: dni
0

UTF8

pol90
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1181
0

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

  • Rejestracja: dni
  • Ostatnio: dni
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?

arczinosek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 86
0

Spróbuj jeszcze dodać:

Kopiuj
SET CHARACTER_SET_CONNECTION=utf8

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.