Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace Doctrine\DBAL\Driver\Mysqli\Exception;
6
 
7
use Doctrine\DBAL\Driver\AbstractException;
8
use mysqli;
9
use mysqli_sql_exception;
10
use ReflectionProperty;
11
 
12
use function assert;
13
 
14
/**
15
 * @internal
16
 *
17
 * @psalm-immutable
18
 */
19
final class ConnectionFailed extends AbstractException
20
{
21
    public static function new(mysqli $connection): self
22
    {
23
        $error = $connection->connect_error;
24
        assert($error !== null);
25
 
26
        return new self($error, 'HY000', $connection->connect_errno);
27
    }
28
 
29
    public static function upcast(mysqli_sql_exception $exception): self
30
    {
31
        $p = new ReflectionProperty(mysqli_sql_exception::class, 'sqlstate');
32
        $p->setAccessible(true);
33
 
34
        return new self($exception->getMessage(), $p->getValue($exception), (int) $exception->getCode(), $exception);
35
    }
36
}