Por que o PDO não permite vários espaços reservados com o mesmo nome?

Estou usando PHP e MySQL com DOP. Às vezes, preciso preparar uma instrução com uma variável (espaço reservado) usada mais de uma vez nesta consulta.

Exemplo:

SELECT * FROM messages WHERE from_id = :user OR to_id = :user

No entanto, se eu tentar preparar esta declaração, terei um erro, por isso preciso fazer isso da seguinte maneira:

SELECT * FROM messages WHERE from_id = :user1 OR to_id = :user2

Para chamar essa declaração, precisarei ter uma matriz como esta:

array('user1'=>$user_id, 'user2'=>$user_id);

Parece tão estúpido para mim! Por que o MySQL (PDO?) Não me permite usar um espaço reservado mais de uma vez e me obriga a usar variáveis extras que exigem mais controle ?!

Isso pode ser tratado facilmente se a consulta for relativamente simples (como postamos acima), mas agora criei uma consulta com 5 (!!!) usos de variável única. Cada vez que adiciono o espaço reservado, preciso verificar o código em vários locais para torná-lo correto.

Existe alguma configuração ou um ajuste para contornar isso?

questionAnswers(1)

yourAnswerToTheQuestion