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?