public function execute()
	{
		// Check connection
		$this->hasConnectionOrFail();

		// Capture the start time
		$start = microtime(true);

		// Execute the query
		try
		{
			$this->statement->execute();
		}
		catch (\PDOException $e)
		{
			// @FIXME: this should honor error reporting settings
			throw new QueryFailedException($e->getMessage(), 500, $e);
		}

		if ($this->debug)
		{
			// Log it
			$this->log(microtime(true) - $start);
		}

		return $this;
	}