-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
Statement.php
71 lines (65 loc) · 3.31 KB
/
Statement.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
declare(strict_types=1);
namespace Doctrine\DBAL\Driver;
use Doctrine\DBAL\ParameterType;
/**
* Driver-level statement
*/
interface Statement
{
/**
* Binds a value to a corresponding named (not supported by mysqli driver, see comment below) or positional
* placeholder in the SQL statement that was used to prepare the statement.
*
* As mentioned above, the named parameters are not natively supported by the mysqli driver, use executeQuery(),
* fetchAll(), fetchArray(), fetchColumn(), fetchAssoc() methods to have the named parameter emulated by doctrine.
*
* @param int|string $param Parameter identifier. For a prepared statement using named placeholders,
* this will be a parameter name of the form :name. For a prepared statement
* using question mark placeholders, this will be the 1-indexed position
* of the parameter.
* @param mixed $value The value to bind to the parameter.
* @param ParameterType $type Explicit data type for the parameter using the {@see ParameterType}
* constants.
*
* @throws Exception
*/
public function bindValue(int|string $param, mixed $value, ParameterType $type): void;
/**
* Binds a PHP variable to a corresponding named (not supported by mysqli driver, see comment below) or question
* mark placeholder in the SQL statement that was use to prepare the statement. Unlike {@see bindValue()},
* the variable is bound as a reference and will only be evaluated at the time
* that PDOStatement->execute() is called.
*
* As mentioned above, the named parameters are not natively supported by the mysqli driver, use executeQuery(),
* fetchAll(), fetchArray(), fetchColumn(), fetchAssoc() methods to have the named parameter emulated by doctrine.
*
* Most parameters are input parameters, that is, parameters that are
* used in a read-only fashion to build up the query. Some drivers support the invocation
* of stored procedures that return data as output parameters, and some also as input/output
* parameters that both send in data and are updated to receive it.
*
* @param int|string $param Parameter identifier. For a prepared statement using named placeholders,
* this will be a parameter name of the form :name. For a prepared statement using
* question mark placeholders, this will be the 1-indexed position of the parameter.
* @param mixed $variable The variable to bind to the parameter.
* @param ParameterType $type Explicit data type for the parameter using the {@see ParameterType}
* constants.
* @param int|null $length You must specify maxlength when using an OUT bind
* so that PHP allocates enough memory to hold the returned value.
*
* @throws Exception
*/
public function bindParam(
int|string $param,
mixed &$variable,
ParameterType $type,
?int $length = null
): void;
/**
* Executes a prepared statement
*
* @throws Exception
*/
public function execute(): Result;
}