Как PDO не может возвращать строку, которую выполняет pg_query ()?

У меня была таблица с bigserial PK, один символ, различающийся FK и bigint FK, и уникальное ограничение для этих FK, символ, не имеющий NULL, и два элемента с нулевыми значениями.

Все это выполнялось на виртуальной машине с Ubuntu 14.04.2 LTS, PHP 5.5.9 и PostgreSQL 9.3 и всеми другими пакетами из дистрибутива.

я сделал

$pdo->query("SELECT * FROM table")->fetchAll(PDO::FETCH_ASSOC) 

а также

 $r = pg_query($db, "SELECT * FROM table"); pg_fetch_all($r) 

Последний возвращал все строки, в то время как первый возвращал все строки, кроме одного.

Я также попытался выбрать ту самую строку, и в то время как функции pg_*() работали должным образом, PDO не возвращал строку.

Чтобы сделать его еще более странным, расхождение появилось только в PHP-FPM с помощью lighttpd 1.4.33, но не при запуске с PHP CLI в оболочке.

Как это может быть? Кто-нибудь еще сталкивался с подобной ситуацией? И как я могу быть уверен, что PDO не подведет меня снова?

Я даже попытался перезагрузить VM и перезапустить PostgreSQL, но результаты не изменились.

К сожалению, у меня нет резервной копии этого материала, потому что я должен был заставить все работать как можно скорее, поэтому я удалил эту загадочную строку и заменил ее на новую, идентичную во всех столбцах, кроме PK.

Новая строка была правильно возвращена обоими.