
Standardowo mój kod wygląda mniej więcej tak:
try { $pdo = new PDO('mysql:host=localhost;dbname=test','root','Kokomoko6677', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); $pdo ->query('SET CHARACTER SET utf8;'); $pdo -> query('SET character_set_client = utf8;'); $pdo -> query('SET character_set_results = utf8;'); $pdo -> query('SET character_set_connection = utf8;'); $pdo -> query('SET character_set_database = utf8;'); $pdo -> query('SET character_set_server = utf8;'); $pdo -> query ('SET NAMES utf8'); $pdo -> query ('SET CHARACTER_SET utf8_unicode_ci'); //$pdo -> query('SELECT id, content FROM articles;'); //echo "połączenie nawiązane"; } catch(PDOException $e) { } $ilosc = $pdo -> exec('INSERT INTO `markety` (`nazwa`, `numer`, `ip`, `lokalizacja`, `adres`, `vlan`, `telefon`, `numertp`) VALUES(\''.$nazwa.'\',\''.$numer.'\',\''.$ip.'\',\''.$lokalizacja.'\',\''.$adres.'\','.$vlan.',\''.$telefon.'\',\''.$numertp.'\')');
Pewnie zbyt dużo tam tych SET, ale zacząłem już dokładać wszystko co mogło by coś zmienić...

Potem uznałem, że może biblioteka PDO coś nie tegest jest, więc zrobiłem to tak:
$zapytanko='INSERT INTO `markety` (`nazwa`, `numer`, `ip`, `lokalizacja`, `adres`, `vlan`, `telefon`, `numertp`) VALUES(\''.$nazwa.'\',\''.$numer.'\',\''.$ip.'\',\''.$lokalizacja.'\',\''.$adres.'\','.$vlan.',\''.$telefon.'\',\''.$numertp.'\')';
Na bazie wykonywałem:
ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE `markety` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
oraz sprawdzałem kodowanie przez:
SHOW CREATE DATABASE mysql> SHOW CREATE DATABASE test -> ; +----------+--------------------------------------------------------------------------------------+ | DATABASE | CREATE DATABASE | +----------+--------------------------------------------------------------------------------------+ | test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci */ | +----------+--------------------------------------------------------------------------------------+ 1 row IN SET (0.00 sec) SHOW CREATE TABLE markety; ... ENGINE=MyISAM AUTO_INCREMENT=41 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
phpMyAdmin pokazuje to samo.
Na stronie w nagłóku mam:
<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ę!