http://php.net/manual/en/pdo.prepare.php uvádí:
Jak to naznačuje, pravděpodobným důvodem, proč váš kód funguje na jednom serveru a ne na druhém, je to, že PDO::ATTR_EMULATE_PREPARES
je zakázáno na serveru, na kterém kód selže. Jak uvádí dokumentace, tento atribut účinně odstraňuje omezení, které vám brání použít značku parametru se stejným názvem dvakrát (spolu s některými dalšími omezeními).