Update website
This commit is contained in:
parent
4413528994
commit
1d90fbf296
6865 changed files with 1091082 additions and 0 deletions
141
vendor/doctrine/dbal/src/Driver/IBMDB2/Connection.php
vendored
Normal file
141
vendor/doctrine/dbal/src/Driver/IBMDB2/Connection.php
vendored
Normal file
|
@ -0,0 +1,141 @@
|
|||
<?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;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue