Passed
Push — type-registry ( f9a1df...0931f1 )
by Michael
24:09
created

Connection::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1.0156

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 3
cts 4
cp 0.75
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 4
crap 1.0156
1
<?php
2
3
namespace Doctrine\DBAL\Driver\PDOSqlsrv;
4
5
use Doctrine\DBAL\Driver\PDOConnection;
6
use Doctrine\DBAL\ParameterType;
7
use PDO;
8
use function strpos;
9
use function substr;
10
11
/**
12
 * Sqlsrv Connection implementation.
13
 */
14
class Connection extends PDOConnection
15
{
16
    /**
17
     * {@inheritdoc}
18
     */
19 40
    public function __construct($dsn, $user = null, $password = null, ?array $options = null)
20
    {
21 40
        parent::__construct($dsn, $user, $password, $options);
22 40
        $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, [Statement::class, []]);
23 40
    }
24
25
    /**
26
     * {@inheritDoc}
27
     */
28 3
    public function lastInsertId($name = null)
29
    {
30 3
        if ($name === null) {
31 3
            return parent::lastInsertId($name);
32
        }
33
34 2
        $stmt = $this->prepare('SELECT CONVERT(VARCHAR(MAX), current_value) FROM sys.sequences WHERE name = ?');
35 2
        $stmt->execute([$name]);
36
37 2
        return $stmt->fetchColumn();
38
    }
39
40
    /**
41
     * {@inheritDoc}
42
     */
43 29
    public function quote($value, $type = ParameterType::STRING)
44
    {
45 29
        $val = parent::quote($value, $type);
46
47
        // Fix for a driver version terminating all values with null byte
48 29
        if (strpos($val, "\0") !== false) {
49
            $val = substr($val, 0, -1);
50
        }
51
52 29
        return $val;
53
    }
54
}
55