Когда функция возвращает false, а должны были выдать массива данных, загляни в свойства PDO. Включи ошибки с помощью PDO::ATTR_ERRMODE, чтобы выловить точное описание провала – так проще определить, что с базой.
JSON ломает парсинг из-за UTF-8 с BOM? Воспользуйся php://input, очисти поток с помощью trim и выведи результат с помощью json_decode, проконтролировав ошибки с помощью json_last_error.
Когда с помощью конструкции include подтягиваем файлы с логикой, избегай конструкции с динамическими путями – лучше определить absolute path с помощью __DIR__, иначе всё смешается в кучу.