What is the use of @db_query?
@ is the error control operator, what it does is suppress notices/warnings and even script halting errors. You see it most commonly used with variable comparisons where the person coding didn't bother to check if a variable is set first.

if (@$unsetVar != $var) {
  @$unsetVar .= $non_existent_variable';
}


Suppresses the warning that $unsetVar is not initialised.

The proper way of doing this though would be using isset($unsetVar) to check that this variable is in fact initialized first, if not don't do anything with it, or assign it a default of some kind. Then neither the comparison or the concatenate will throw errors. Keeping this in mind can prevent some show stopping bugs later down the line as your applications become more complicated. 

I'd personally advise against using @ wherever possible, if there's a notice/warning/error it's usually for a reason, using @ is a lazy fix and can make debugging a pain if something does go wrong.

Tl;dr, I'd avoid using @ where possible.