скорее всего проблема с PDO, возможно перед $ нужно поставить \
У меня выдавалась точно такая же ошибка (она у них видимо на все случаи жизни, если вдруг парсер не разобрался) на запрос
created >= now() - interval :created
исправил на
created >= now() - :created::interval
и ошибка пропала, хотя оба варианта работают, если делать запрос к базе через другие инструменты, а второй вариант наоборот должен выглядеть сложнее для парсера.
Такого рода ошибки наталкивают меня на мысль, что PDO не просто подставляет параметры, а анализирует запросы, что неизбежно должно сказаться на производительности.