Косяк с insert sqlite3 (php 5.3.2, pdo_sqlite). Баг PDO или ошибка в ДНК ?

kirill538

Новичок
Косяк с insert sqlite3 (php 5.3.2, pdo_sqlite). Баг PDO или ошибка в ДНК ?

Анамнез:

CREATE TABLE test (id INTEGER PRIMARY KEY, title VARCHAR(255), pub BOOLEAN);
...
$utf8string = 'Некие русские буковки';
$db->query('INSERT INTO test (title) VALUES (?)', $utf8string);
В базе лежит строка в utf8.
echo $db->selectValue('SELECT title FROM test WHERE id = 1');
Видим фразу на русском языке.

Слегка изменим:
$db->query('INSERT INTO test (title, pub) VALUES (?, ?)', $utf8string, true);
Опс. В базе лежит строка в кодировке, не поддающейся опознанию :(
echo $db->selectValue('SELECT title FROM test WHERE id = 1');
Видим крякозябры непонятного типа и кодировки.

Кодировка файла скрипта utf8. php собран с --enable-sqlite-utf8.
Запросы выполняются через PDO, версия библиотеки sqlite 3.6.22
PRAGMA charset установленo в utf8.

Ок. Убираем кириллицу.
$db->query('INSERT INTO test (title, pub) VALUES (?, ?)', 'pure english', true);
echo $db->selectValue('SELECT title FROM test WHERE id = 1');
Блин. Опять крякозябры. Дело не в utf8 %(

Куда копать (более конкретный адрес, чем гугл) ?

-~{}~ 28.03.10 05:34:

Ура. Ошибка в ДНК :) Нефига по ночам работать.
В тестах bindParam получал скаляр, а ему хочется переменную.
Вывод ошибок подавлялся логгером phpunit.

Модераторы, убейте тему, плиз.
 
Сверху