Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3declare(strict_types=1);
4
5namespace PeServer\Core\Database;
6
7use PeServer\Core\Database\IDatabaseImplementation;
8use PeServer\Core\Throws\DatabaseException;
9use PeServer\Core\Throws\ObjectDisposedException;
10use PeServer\Core\Throws\SqlException;
11
12/**
13 * `insert/update/delete` 系処理。
14 *
15 * DB固有の何かも行う(`PRAGMA/GRANT/USE` とか)
16 */
17interface IDatabaseExecutor extends IDatabaseImplementation
18{
19    #region function
20
21    /**
22     * 実行処理。
23     *
24     * @template TFieldArray of FieldArrayAlias
25     * @param string $statement
26     * @phpstan-param literal-string $statement
27     * @param array<string|int,string|int|bool>|null $parameters
28     * @phpstan-param array<array-key,DatabaseBindValueAlias>|null $parameters
29     * @return DatabaseTableResult
30     * @phpstan-return DatabaseTableResult<TFieldArray>
31     * @throws DatabaseException
32     */
33    public function execute(string $statement, ?array $parameters = null): DatabaseTableResult;
34
35    /**
36     * 挿入処理。
37     *
38     * @param string $statement
39     * @phpstan-param literal-string $statement
40     * @param array<string|int,string|int|bool>|null $parameters
41     * @phpstan-param array<array-key,DatabaseBindValueAlias>|null $parameters
42     * @return int 挿入件数。
43     * @throws DatabaseException
44     * @throws SqlException 問い合わせ文の検証エラー
45     */
46    public function insert(string $statement, ?array $parameters = null): int;
47
48    /**
49     * 単一挿入処理。
50     *
51     * @param string $statement
52     * @phpstan-param literal-string $statement
53     * @param array<string|int,string|int|bool>|null $parameters
54     * @phpstan-param array<array-key,DatabaseBindValueAlias>|null $parameters
55     * @return void
56     * @throws DatabaseException
57     * @throws SqlException 問い合わせ文の検証エラー
58     */
59    public function insertSingle(string $statement, ?array $parameters = null): void;
60
61    /**
62     * 更新処理。
63     *
64     * @param string $statement
65     * @phpstan-param literal-string $statement
66     * @param array<string|int,string|int|bool>|null $parameters
67     * @phpstan-param array<array-key,DatabaseBindValueAlias>|null $parameters
68     * @return int 更新件数。
69     * @throws DatabaseException
70     * @throws SqlException 問い合わせ文の検証エラー
71     */
72    public function update(string $statement, ?array $parameters = null): int;
73
74    /**
75     * 単一更新処理。
76     *
77     * @param string $statement
78     * @phpstan-param literal-string $statement
79     * @param array<string|int,string|int|bool>|null $parameters
80     * @phpstan-param array<array-key,DatabaseBindValueAlias>|null $parameters
81     * @return void
82     * @throws DatabaseException
83     * @throws SqlException 問い合わせ文の検証エラー
84     */
85    public function updateByKey(string $statement, ?array $parameters = null): void;
86
87    /**
88     * 単一更新処理。
89     *
90     * @param string $statement
91     * @phpstan-param literal-string $statement
92     * @param array<string|int,string|int|bool>|null $parameters
93     * @phpstan-param array<array-key,DatabaseBindValueAlias>|null $parameters
94     * @return boolean 更新できたか。
95     * @throws DatabaseException
96     * @throws SqlException 問い合わせ文の検証エラー
97     */
98    public function updateByKeyOrNothing(string $statement, ?array $parameters = null): bool;
99
100    /**
101     * 削除処理。
102     *
103     * @param string $statement
104     * @phpstan-param literal-string $statement
105     * @param array<string|int,string|int|bool>|null $parameters
106     * @phpstan-param array<array-key,DatabaseBindValueAlias>|null $parameters
107     * @return int 削除件数。
108     * @throws DatabaseException
109     * @throws SqlException 問い合わせ文の検証エラー
110     */
111    public function delete(string $statement, ?array $parameters = null): int;
112
113    /**
114     * 単一削除処理。
115     *
116     * @param string $statement
117     * @phpstan-param literal-string $statement
118     * @param array<string|int,string|int|bool>|null $parameters
119     * @phpstan-param array<array-key,DatabaseBindValueAlias>|null $parameters
120     * @return void
121     * @throws DatabaseException
122     * @throws SqlException 問い合わせ文の検証エラー
123     */
124    public function deleteByKey(string $statement, ?array $parameters = null): void;
125
126    /**
127     * 単一削除処理。
128     *
129     * @param string $statement
130     * @phpstan-param literal-string $statement
131     * @param array<string|int,string|int|bool>|null $parameters
132     * @phpstan-param array<array-key,DatabaseBindValueAlias>|null $parameters
133     * @return boolean 削除できたか。
134     * @throws DatabaseException
135     * @throws SqlException 問い合わせ文の検証エラー
136     */
137    public function deleteByKeyOrNothing(string $statement, ?array $parameters = null): bool;
138
139    #endregion
140}