vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php line 31

Open in your IDE?
  1. <?php
  2. namespace Doctrine\DBAL\Driver;
  3. use Doctrine\DBAL\ParameterType;
  4. use PDO;
  5. use function assert;
  6. use function func_get_args;
  7. /**
  8.  * PDO implementation of the Connection interface.
  9.  * Used by all PDO-based drivers.
  10.  */
  11. class PDOConnection extends PDO implements ConnectionServerInfoAwareConnection
  12. {
  13.     /**
  14.      * @param string       $dsn
  15.      * @param string|null  $user
  16.      * @param string|null  $password
  17.      * @param mixed[]|null $options
  18.      *
  19.      * @throws PDOException In case of an error.
  20.      */
  21.     public function __construct($dsn$user null$password null, ?array $options null)
  22.     {
  23.         try {
  24.             parent::__construct($dsn, (string) $user, (string) $password, (array) $options);
  25.             $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, [PDOStatement::class, []]);
  26.             $this->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
  27.         } catch (\PDOException $exception) {
  28.             throw new PDOException($exception);
  29.         }
  30.     }
  31.     /**
  32.      * {@inheritdoc}
  33.      */
  34.     public function exec($statement)
  35.     {
  36.         try {
  37.             return parent::exec($statement);
  38.         } catch (\PDOException $exception) {
  39.             throw new PDOException($exception);
  40.         }
  41.     }
  42.     /**
  43.      * {@inheritdoc}
  44.      */
  45.     public function getServerVersion()
  46.     {
  47.         return PDO::getAttribute(PDO::ATTR_SERVER_VERSION);
  48.     }
  49.     /**
  50.      * @param string          $prepareString
  51.      * @param array<int, int> $driverOptions
  52.      *
  53.      * @return Statement
  54.      */
  55.     public function prepare($prepareString$driverOptions = [])
  56.     {
  57.         try {
  58.             return parent::prepare($prepareString$driverOptions);
  59.         } catch (\PDOException $exception) {
  60.             throw new PDOException($exception);
  61.         }
  62.     }
  63.     /**
  64.      * {@inheritdoc}
  65.      */
  66.     public function query()
  67.     {
  68.         $args func_get_args();
  69.         try {
  70.             $stmt parent::query(...$args);
  71.             assert($stmt instanceof \PDOStatement);
  72.             return $stmt;
  73.         } catch (\PDOException $exception) {
  74.             throw new PDOException($exception);
  75.         }
  76.     }
  77.     /**
  78.      * {@inheritdoc}
  79.      */
  80.     public function quote($input$type ParameterType::STRING)
  81.     {
  82.         return parent::quote($input$type);
  83.     }
  84.     /**
  85.      * {@inheritdoc}
  86.      */
  87.     public function lastInsertId($name null)
  88.     {
  89.         try {
  90.             if ($name === null) {
  91.                 return parent::lastInsertId();
  92.             }
  93.             return parent::lastInsertId($name);
  94.         } catch (\PDOException $exception) {
  95.             throw new PDOException($exception);
  96.         }
  97.     }
  98.     /**
  99.      * {@inheritdoc}
  100.      */
  101.     public function requiresQueryForServerVersion()
  102.     {
  103.         return false;
  104.     }
  105. }