http://php.net/manual/en/pdo.prepare.php Zustände:
Wie dies zeigt, ist der wahrscheinliche Grund dafür, dass Ihr Code auf einem Server funktioniert und nicht auf einem anderen, dass PDO::ATTR_EMULATE_PREPARES
ist auf dem Server deaktiviert, auf dem der Code fehlschlägt. Wie die Dokumentation sagt, entfernt dieses Attribut effektiv die Einschränkung, die Sie daran hindert, einen Parametermarker mit demselben Namen zweimal zu verwenden (zusammen mit einigen anderen Einschränkungen).