public function query($query, $params = []) {
		
		if(false === is_string($query)) {
			return trigger_error(sprintf('Argument 1 passed to %s() must be of the type string, "%s" given', __METHOD__, gettype($query)), E_USER_ERROR);
		}

		if(null !== $params && false === is_array($params)) {
			return trigger_error(sprintf('Argument 2 passed to %s() must be of the type array, "%s" given', __METHOD__, gettype($params)), E_USER_ERROR);
		}

		if(null === $this -> connection) {
			$this -> connect();
		}

		$bind = $this -> parse($params, $query);

		//Write time for debugging
		if(null === $this -> trace) {
			$this -> trace = microtime(true);	
		}
		
		//Prepare statement
		$stmt = $this -> connection -> prepare($query);

		if(false === $stmt) {
			return trigger_error($this -> connection  -> error, E_USER_ERROR);
		}

		if(count($bind) > 0) {

			if(false === ($stmt -> param_count == count($bind) - 1)) {
				return trigger_error('Number of variable elements query string does not match number of bind variables');
			}

			call_user_func_array([$stmt, 'bind_param'], $bind);
		}

		$this -> stmt[] = $stmt;
		$this -> shadow = $this -> stmt;

		return $this;
	}
public function query($query, $params = []) {
		
		if(false === is_string($query)) {
			return trigger_error(sprintf('Argument 1 passed to %s() must be of the type string, "%s" given', __METHOD__, gettype($query)), E_USER_ERROR);
		}

		if(null !== $params && false === is_array($params)) {
			return trigger_error(sprintf('Argument 2 passed to %s() must be of the type array, "%s" given', __METHOD__, gettype($params)), E_USER_ERROR);
		}

		if(null === $this -> connection) {
			$this -> connect();
		}

		$bind = $this -> parse($params, $query);

		//Write time for debugging
		if(null === $this -> trace) {
			$this -> trace = microtime(true);	
		}
		
		//Prepare statement
		$stmt = $this -> connection -> prepare($query);

		if(false === $stmt) {
			return trigger_error($this -> connection  -> error, E_USER_ERROR);
		}

		if(count($bind) > 0) {

			if(false === ($stmt -> param_count == count($bind) - 1)) {
				return trigger_error('Number of variable elements query string does not match number of bind variables');
			}

			call_user_func_array([$stmt, 'bind_param'], $bind);
		}

		$this -> stmt[] = $stmt;
		$this -> shadow = $this -> stmt;

		return $this;
	}
public function query ( $ query , $ params = [ ] ) { if ( false === is_string ( $ query ) ) { return trigger_error ( sprintf ( 'Argument 1 passed to %s() must be of the type string, "%s" given' , __METHOD__ , gettype ( $ query ) ) , E_USER_ERROR ) ; } if ( null !== $ params && false === is_array ( $ params ) ) { return trigger_error ( sprintf ( 'Argument 2 passed to %s() must be of the type array, "%s" given' , __METHOD__ , gettype ( $ params ) ) , E_USER_ERROR ) ; } if ( null === $ this -> connection ) { $ this -> connect ( ) ; } $ bind = $ this -> parse ( $ params , $ query ) ; //Write time for debugging
 if ( null === $ this -> trace ) { $ this -> trace = microtime ( true ) ; } //Prepare statement
 $ stmt = $ this -> connection -> prepare ( $ query ) ; if ( false === $ stmt ) { return trigger_error ( $ this -> connection -> error , E_USER_ERROR ) ; } if ( count ( $ bind ) > 0 ) { if ( false === ( $ stmt -> param_count == count ( $ bind ) - 1 ) ) { return trigger_error ( 'Number of variable elements query string does not match number of bind variables' ) ; } call_user_func_array ( [ $ stmt , 'bind_param' ] , $ bind ) ; } $ this -> stmt [ ] = $ stmt ; $ this -> shadow = $ this -> stmt ; return $ this ; }
Prepare a raw query
@param string $query
@param array $params
@return $this
Prepare a raw query