Avoid call_user_func_array in query method

> Even the current logic there is broken

Indeed.
What about this new code?
```php
case 2:
    if (is_array($args[1])) {
        $result = $this->executeQuery($args[0], $args[1]);
    }
    else {
        $result = parent::query($args[0], $args[1]);
    }
   break;
```