Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mysql polskie kodowanie znaków
rysic
post
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. (IMG:style_emoticons/default/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ć... (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 15:57