404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@18.217.14.208: ~ $
<?php

namespace Doctrine\DBAL\Driver\IBMDB2;

use Doctrine\DBAL\Driver\IBMDB2\Exception\ConnectionError;
use Doctrine\DBAL\Driver\IBMDB2\Exception\PrepareFailed;
use Doctrine\DBAL\Driver\IBMDB2\Exception\StatementError;
use Doctrine\DBAL\Driver\Result as ResultInterface;
use Doctrine\DBAL\Driver\ServerInfoAwareConnection;
use Doctrine\DBAL\Driver\Statement as DriverStatement;
use Doctrine\DBAL\ParameterType;
use Doctrine\Deprecations\Deprecation;
use stdClass;

use function assert;
use function db2_autocommit;
use function db2_commit;
use function db2_escape_string;
use function db2_exec;
use function db2_last_insert_id;
use function db2_num_rows;
use function db2_prepare;
use function db2_rollback;
use function db2_server_info;
use function error_get_last;

use const DB2_AUTOCOMMIT_OFF;
use const DB2_AUTOCOMMIT_ON;

final class Connection implements ServerInfoAwareConnection
{
    /** @var resource */
    private $connection;

    /**
     * @internal The connection can be only instantiated by its driver.
     *
     * @param resource $connection
     */
    public function __construct($connection)
    {
        $this->connection = $connection;
    }

    /**
     * {@inheritdoc}
     */
    public function getServerVersion()
    {
        $serverInfo = db2_server_info($this->connection);
        assert($serverInfo instanceof stdClass);

        return $serverInfo->DBMS_VER;
    }

    public function prepare(string $sql): DriverStatement
    {
        $stmt = @db2_prepare($this->connection, $sql);

        if ($stmt === false) {
            throw PrepareFailed::new(error_get_last());
        }

        return new Statement($stmt);
    }

    public function query(string $sql): ResultInterface
    {
        return $this->prepare($sql)->execute();
    }

    /**
     * {@inheritdoc}
     */
    public function quote($value, $type = ParameterType::STRING)
    {
        $value = db2_escape_string($value);

        if ($type === ParameterType::INTEGER) {
            return $value;
        }

        return "'" . $value . "'";
    }

    public function exec(string $sql): int
    {
        $stmt = @db2_exec($this->connection, $sql);

        if ($stmt === false) {
            throw StatementError::new();
        }

        return db2_num_rows($stmt);
    }

    /**
     * {@inheritdoc}
     */
    public function lastInsertId($name = null)
    {
        if ($name !== null) {
            Deprecation::triggerIfCalledFromOutside(
                'doctrine/dbal',
                'https://github.com/doctrine/dbal/issues/4687',
                'The usage of Connection::lastInsertId() with a sequence name is deprecated.',
            );
        }

        return db2_last_insert_id($this->connection) ?? false;
    }

    public function beginTransaction(): bool
    {
        return db2_autocommit($this->connection, DB2_AUTOCOMMIT_OFF);
    }

    public function commit(): bool
    {
        if (! db2_commit($this->connection)) {
            throw ConnectionError::new($this->connection);
        }

        return db2_autocommit($this->connection, DB2_AUTOCOMMIT_ON);
    }

    public function rollBack(): bool
    {
        if (! db2_rollback($this->connection)) {
            throw ConnectionError::new($this->connection);
        }

        return db2_autocommit($this->connection, DB2_AUTOCOMMIT_ON);
    }

    /** @return resource */
    public function getNativeConnection()
    {
        return $this->connection;
    }
}

Filemanager

Name Type Size Permission Actions
Exception Folder 0755
Connection.php File 3.39 KB 0644
DataSourceName.php File 1.79 KB 0644
Driver.php File 1.06 KB 0644
Result.php File 2.25 KB 0644
Statement.php File 5.75 KB 0644