Creo que se ve bastante bien; Me gusta. Supongo que secure()
protege de la inyección sql. Realmente no veo nada que cambiaría.
podrías quite las llaves del bucle for ya que es una declaración, pero eso no es gran cosa
foreach ($qWhere as $key=>$value)
$fields[] = sprintf("%s = '%s'", $key, secure($value));