Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mysql polskie kodowanie znaków
rysic
post 9.09.2010, 15:10:23
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.09.2010

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


Potrzebuję pomocy z kodowaniem znaków w mysql-u. Nie zajmuję się zawodowo PHP, więc całkiem możliwe, że robię coś nie tak już u podstaw. Próbowałem już wielu możliwości, ale żadna nie pomaga. sciana.gif

Standardowo mój kod wygląda mniej więcej tak:

  1.  
  2. try
  3. {
  4. $pdo = new PDO('mysql:host=localhost;dbname=test','root','Kokomoko6677', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  5.  
  6. $pdo ->query('SET CHARACTER SET utf8;');
  7. $pdo -> query('SET character_set_client = utf8;');
  8. $pdo -> query('SET character_set_results = utf8;');
  9. $pdo -> query('SET character_set_connection = utf8;');
  10. $pdo -> query('SET character_set_database = utf8;');
  11. $pdo -> query('SET character_set_server = utf8;');
  12. $pdo -> query ('SET NAMES utf8');
  13. $pdo -> query ('SET CHARACTER_SET utf8_unicode_ci');
  14.  
  15.  
  16. //$pdo -> query('SELECT id, content FROM articles;');
  17. //echo "połączenie nawiązane";
  18. }
  19. catch(PDOException $e)
  20. {
  21. echo 'Połączenie nie mogło zostać nazwiązane<br/>'.$e->getMessage();
  22. }
  23.  
  24. $ilosc = $pdo -> exec('INSERT INTO `markety` (`nazwa`, `numer`, `ip`, `lokalizacja`, `adres`, `vlan`, `telefon`, `numertp`) VALUES(\''.$nazwa.'\',\''.$numer.'\',\''.$ip.'\',\''.$lokalizacja.'\',\''.$adres.'\','.$vlan.',\''.$telefon.'\',\''.$numertp.'\')');
  25.  


Pewnie zbyt dużo tam tych SET, ale zacząłem już dokładać wszystko co mogło by coś zmienić... wstydnis.gif

Potem uznałem, że może biblioteka PDO coś nie tegest jest, więc zrobiłem to tak:

  1. $sql_conn = mysql_connect('localhost' , 'root' , 'Kokomoko6677');
  2. mysql_select_db ("test");
  3. mysql_query('set names latin2 collate utf8_unicode_ci');
  4. mysql_query('set character set utf8');
  5.  
  6. $zapytanko='INSERT INTO `markety` (`nazwa`, `numer`, `ip`, `lokalizacja`, `adres`, `vlan`, `telefon`, `numertp`) VALUES(\''.$nazwa.'\',\''.$numer.'\',\''.$ip.'\',\''.$lokalizacja.'\',\''.$adres.'\','.$vlan.',\''.$telefon.'\',\''.$numertp.'\')';
  7. mysql_query($zapytanko );


Na bazie wykonywałem:

  1. ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
  2. ALTER TABLE `markety` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;


oraz sprawdzałem kodowanie przez:

  1. SHOW CREATE DATABASE
  2. mysql> SHOW CREATE DATABASE test
  3. -> ;
  4. +----------+--------------------------------------------------------------------------------------+
  5. | DATABASE | CREATE DATABASE |
  6. +----------+--------------------------------------------------------------------------------------+
  7. | test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci */ |
  8. +----------+--------------------------------------------------------------------------------------+
  9. 1 row IN SET (0.00 sec)
  10.  
  11.  
  12. SHOW CREATE TABLE markety;
  13. ...
  14. ENGINE=MyISAM AUTO_INCREMENT=41 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci


phpMyAdmin pokazuje to samo.

Na stronie w nagłóku mam:

  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


Baza, Apache i PHP postawione są na Debianie. Jak zrobię zapytanie z palca do bazy, to polskie znaki są widoczne w tabeli.

Nie mam już kompletnie pomysłu co może być nie tak...

Proszę o pomoc. Z góry dziękuję!
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 22:52