Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Core\Database;
|
Chris@0
|
4
|
Chris@0
|
5 /**
|
Chris@0
|
6 * Empty implementation of a database statement.
|
Chris@0
|
7 *
|
Chris@0
|
8 * This class satisfies the requirements of being a database statement/result
|
Chris@0
|
9 * object, but does not actually contain data. It is useful when developers
|
Chris@0
|
10 * need to safely return an "empty" result set without connecting to an actual
|
Chris@0
|
11 * database. Calling code can then treat it the same as if it were an actual
|
Chris@0
|
12 * result set that happens to contain no records.
|
Chris@0
|
13 *
|
Chris@0
|
14 * @see \Drupal\search\SearchQuery
|
Chris@0
|
15 */
|
Chris@0
|
16 class StatementEmpty implements \Iterator, StatementInterface {
|
Chris@0
|
17
|
Chris@0
|
18 /**
|
Chris@0
|
19 * Is rowCount() execution allowed.
|
Chris@0
|
20 *
|
Chris@0
|
21 * @var bool
|
Chris@0
|
22 */
|
Chris@0
|
23 public $allowRowCount = FALSE;
|
Chris@0
|
24
|
Chris@0
|
25 /**
|
Chris@0
|
26 * {@inheritdoc}
|
Chris@0
|
27 */
|
Chris@0
|
28 public function execute($args = [], $options = []) {
|
Chris@0
|
29 return FALSE;
|
Chris@0
|
30 }
|
Chris@0
|
31
|
Chris@0
|
32 /**
|
Chris@0
|
33 * {@inheritdoc}
|
Chris@0
|
34 */
|
Chris@0
|
35 public function getQueryString() {
|
Chris@0
|
36 return '';
|
Chris@0
|
37 }
|
Chris@0
|
38
|
Chris@0
|
39 /**
|
Chris@0
|
40 * {@inheritdoc}
|
Chris@0
|
41 */
|
Chris@0
|
42 public function rowCount() {
|
Chris@0
|
43 if ($this->allowRowCount) {
|
Chris@0
|
44 return 0;
|
Chris@0
|
45 }
|
Chris@0
|
46 throw new RowCountException();
|
Chris@0
|
47 }
|
Chris@0
|
48
|
Chris@0
|
49 /**
|
Chris@0
|
50 * {@inheritdoc}
|
Chris@0
|
51 */
|
Chris@0
|
52 public function setFetchMode($mode, $a1 = NULL, $a2 = []) {
|
Chris@0
|
53 return;
|
Chris@0
|
54 }
|
Chris@0
|
55
|
Chris@0
|
56 /**
|
Chris@0
|
57 * {@inheritdoc}
|
Chris@0
|
58 */
|
Chris@0
|
59 public function fetch($mode = NULL, $cursor_orientation = NULL, $cursor_offset = NULL) {
|
Chris@0
|
60 return NULL;
|
Chris@0
|
61 }
|
Chris@0
|
62
|
Chris@0
|
63 /**
|
Chris@0
|
64 * {@inheritdoc}
|
Chris@0
|
65 */
|
Chris@0
|
66 public function fetchField($index = 0) {
|
Chris@0
|
67 return NULL;
|
Chris@0
|
68 }
|
Chris@0
|
69
|
Chris@0
|
70 /**
|
Chris@0
|
71 * {@inheritdoc}
|
Chris@0
|
72 */
|
Chris@0
|
73 public function fetchObject() {
|
Chris@0
|
74 return NULL;
|
Chris@0
|
75 }
|
Chris@0
|
76
|
Chris@0
|
77 /**
|
Chris@0
|
78 * {@inheritdoc}
|
Chris@0
|
79 */
|
Chris@0
|
80 public function fetchAssoc() {
|
Chris@0
|
81 return NULL;
|
Chris@0
|
82 }
|
Chris@0
|
83
|
Chris@0
|
84 /**
|
Chris@0
|
85 * {@inheritdoc}
|
Chris@0
|
86 */
|
Chris@0
|
87 public function fetchAll($mode = NULL, $column_index = NULL, $constructor_arguments = NULL) {
|
Chris@0
|
88 return [];
|
Chris@0
|
89 }
|
Chris@0
|
90
|
Chris@0
|
91 /**
|
Chris@0
|
92 * {@inheritdoc}
|
Chris@0
|
93 */
|
Chris@0
|
94 public function fetchCol($index = 0) {
|
Chris@0
|
95 return [];
|
Chris@0
|
96 }
|
Chris@0
|
97
|
Chris@0
|
98 /**
|
Chris@0
|
99 * {@inheritdoc}
|
Chris@0
|
100 */
|
Chris@0
|
101 public function fetchAllKeyed($key_index = 0, $value_index = 1) {
|
Chris@0
|
102 return [];
|
Chris@0
|
103 }
|
Chris@0
|
104
|
Chris@0
|
105 /**
|
Chris@0
|
106 * {@inheritdoc}
|
Chris@0
|
107 */
|
Chris@0
|
108 public function fetchAllAssoc($key, $fetch = NULL) {
|
Chris@0
|
109 return [];
|
Chris@0
|
110 }
|
Chris@0
|
111
|
Chris@0
|
112 /**
|
Chris@0
|
113 * {@inheritdoc}
|
Chris@0
|
114 */
|
Chris@0
|
115 public function current() {
|
Chris@0
|
116 return NULL;
|
Chris@0
|
117 }
|
Chris@0
|
118
|
Chris@0
|
119 /**
|
Chris@0
|
120 * {@inheritdoc}
|
Chris@0
|
121 */
|
Chris@0
|
122 public function key() {
|
Chris@0
|
123 return NULL;
|
Chris@0
|
124 }
|
Chris@0
|
125
|
Chris@0
|
126 /**
|
Chris@0
|
127 * {@inheritdoc}
|
Chris@0
|
128 */
|
Chris@0
|
129 public function rewind() {
|
Chris@0
|
130 // Nothing to do: our DatabaseStatement can't be rewound.
|
Chris@0
|
131 }
|
Chris@0
|
132
|
Chris@0
|
133 /**
|
Chris@0
|
134 * {@inheritdoc}
|
Chris@0
|
135 */
|
Chris@0
|
136 public function next() {
|
Chris@0
|
137 // Do nothing, since this is an always-empty implementation.
|
Chris@0
|
138 }
|
Chris@0
|
139
|
Chris@0
|
140 /**
|
Chris@0
|
141 * {@inheritdoc}
|
Chris@0
|
142 */
|
Chris@0
|
143 public function valid() {
|
Chris@0
|
144 return FALSE;
|
Chris@0
|
145 }
|
Chris@0
|
146
|
Chris@0
|
147 }
|