Myslím, že to vypadá docela dobře; Líbí se mi to. Předpokládám secure()
chrání před sql injekcí. Opravdu nevidím nic, co bych změnil.
Mohli byste vyjměte složené závorky z cyklu for od jeho jednoho příkazu, ale to není nic extra
foreach ($qWhere as $key=>$value)
$fields[] = sprintf("%s = '%s'", $key, secure($value));