Jyxo\Beholder\TestCase\Mysql::run PHP Метод

run() публичный Метод

Performs the test.
public run ( ) : Result
Результат Jyxo\Beholder\Result
    public function run() : \Jyxo\Beholder\Result
    {
        // The mysqli extension is required
        if (!extension_loaded('mysqli')) {
            return new \Jyxo\Beholder\Result(\Jyxo\Beholder\Result::NOT_APPLICABLE, 'Extension \\mysqli missing');
        }
        // Status label
        $description = sprintf('%s@%s:%s/%s', $this->user, $this->host, $this->port, $this->database);
        // Connection
        $db = mysqli_init();
        if (!$db) {
            return new \Jyxo\Beholder\Result(\Jyxo\Beholder\Result::FAILURE, sprintf('Connection error %s', $description));
        }
        if (false === mysqli_options($db, MYSQLI_OPT_CONNECT_TIMEOUT, $this->timeout)) {
            return new \Jyxo\Beholder\Result(\Jyxo\Beholder\Result::FAILURE, sprintf('Connection error %s', $description));
        }
        if (false === mysqli_real_connect($db, $this->host, $this->user, $this->password, $this->database, $this->port)) {
            return new \Jyxo\Beholder\Result(\Jyxo\Beholder\Result::FAILURE, sprintf('Connection error %s', $description));
        }
        // Query
        $result = mysqli_query($db, $this->query);
        if (false === $result) {
            mysqli_close($db);
            return new \Jyxo\Beholder\Result(\Jyxo\Beholder\Result::FAILURE, sprintf('Query error %s', $description));
        }
        mysqli_free_result($result);
        mysqli_close($db);
        // OK
        return new \Jyxo\Beholder\Result(\Jyxo\Beholder\Result::SUCCESS, $description);
    }