Io invece sono contrario all'uso di concatenazione di stringhe ed espressioni, in quanto - a mio modo di vedere - la cosa compromette tantissimo la leggibilita'. Quello che preferisco fare e' fare tutti i controlli prima, creare delle variabili apposta e mantenere le stringhe il piu' lineari possibile.
In pratica scriverei cosi' la query sopra:
Codice PHP:
$condizione1 = ($t2SoloConfermati == true ? " AND t2.confermati = 'Si'" : '');
$condizione2 = ($t1SoloConfermati == true ? " AND t1.confermati = 'Si'" : '');
$query = "SELECT t2.*
FROM tabella1 AS t1
INNER JOIN tabella2 AS t2 ON
(
t2.tabella2_tabella1_id = t1.tabella1_id
$condizione1
)
WHERE
t1.eliminati = 'No'
$condizione2";
ovviamente cercando di dare alle variabili nomi significativi. Usando un editor con un corretto syntax highlighting si individuano subito le variabili, il tutto e' molto piu' conciso e non ci sono confusioni con virgolette aperte e chiuse.