質問: tmp.number and datediff(master.date, :date) < datediff(tmp.date, :date)) ORDER BY number"); $stmt -> bindValue(':date', $date, PDO::PARAM_STR); ```
回答: PDOでPDO::ATTR_EMULATE_PREPARES を false に設定した場合、:date 等のプレースホルダをSQL文中で複数回使うことができないようです。プレースホルダ名を :date1 :date2 :date3 等異なる名前にして、bindもそれぞれ行えば動くようになると思われます。 PDOでPDO::ATTR_EMULATE_PREPARES を true にした場合は、SQL文中に同名のプレースホルダが複数回あっても大丈夫なようです。