public function query(string $sql, array $params = []) {
        X::logger()->trace("$sql with params " . $this->serializeArray($params));
        try {
            $st = $this->pdo->prepare($sql);
            if ($st === false) {
                $e = $this->pdo->errorInfo();
                throw new DataBaseException($e[2], $e[1]);
            }
            if ($st->execute($params)) {
                $this->_affectedRows = $st->rowCount();
                $this->_lastInsertId = $this->pdo->lastInsertId();
                return $st->fetchAll(PDO::FETCH_ASSOC);
            }

            $e = $st->errorInfo();
            throw new DataBaseException($e[2], $e[1]);
        } catch (PDOException $ex) {
            X::logger()->trace($ex);
            throw new DataBaseException($ex->getMessage(), $ex->getCode());
        }
    }
public function query(string $sql, array $params = []) {
        X::logger()->trace("$sql with params " . $this->serializeArray($params));
        try {
            $st = $this->pdo->prepare($sql);
            if ($st === false) {
                $e = $this->pdo->errorInfo();
                throw new DataBaseException($e[2], $e[1]);
            }
            if ($st->execute($params)) {
                $this->_affectedRows = $st->rowCount();
                $this->_lastInsertId = $this->pdo->lastInsertId();
                return $st->fetchAll(PDO::FETCH_ASSOC);
            }

            $e = $st->errorInfo();
            throw new DataBaseException($e[2], $e[1]);
        } catch (PDOException $ex) {
            X::logger()->trace($ex);
            throw new DataBaseException($ex->getMessage(), $ex->getCode());
        }
    }
public function query ( string $ sql , array $ params = [ ] ) { X :: logger ( ) -> trace ( "$sql with params " . $ this -> serializeArray ( $ params ) ) ; try { $ st = $ this -> pdo -> prepare ( $ sql ) ; if ( $ st === false ) { $ e = $ this -> pdo -> errorInfo ( ) ; throw new DataBaseException ( $ e [ 2 ] , $ e [ 1 ] ) ; } if ( $ st -> execute ( $ params ) ) { $ this -> _affectedRows = $ st -> rowCount ( ) ; $ this -> _lastInsertId = $ this -> pdo -> lastInsertId ( ) ; return $ st -> fetchAll ( PDO :: FETCH_ASSOC ) ; } $ e = $ st -> errorInfo ( ) ; throw new DataBaseException ( $ e [ 2 ] , $ e [ 1 ] ) ; } catch ( PDOException $ ex ) { X :: logger ( ) -> trace ( $ ex ) ; throw new DataBaseException ( $ ex -> getMessage ( ) , $ ex -> getCode ( ) ) ; } }
run sql and return the result

@param string $sql
@param array  $params

@throws DataBaseException
@return array
run sql and return the result