ILIAS  trunk Revision v12.0_alpha-1221-g4e438232683
ilDBPdoManager Class Reference

Class ilDBPdoManager. More...

+ Inheritance diagram for ilDBPdoManager:
+ Collaboration diagram for ilDBPdoManager:

Public Member Functions

 __construct (protected \PDO $pdo, protected Internal $db_instance)
 
 getQueryUtils ()
 
 getDBInstance ()
 
 listTables (?string $database=null)
 
 listSequences (?string $database=null)
 
 createConstraint (string $table, string $name, array $definition)
 
 createSequence (string $seq_name, int $start=1, array $options=[])
 
 alterTable (string $name, array $changes, bool $check)
 
 createTable (string $name, array $fields, array $options=[])
 
 getIndexName (string $idx)
 
 getSequenceName (string $sqn)
 
 listTableFields (string $table)
 
 listTableConstraints (string $table)
 
 listTableIndexes (string $table)
 
 createIndex (string $table, string $name, array $definition)
 
 dropIndex (string $table, string $name)
 
 dropSequence (string $seq_name)
 
 getTableCreationQuery (string $name, array $fields, array $options=[])
 
 dropConstraint (string $table, string $name, bool $primary=false)
 
 dropTable (string $name)
 
 addForeignKey (string $foreign_key_name, array $field_names, string $table_name, array $reference_field_names, string $reference_table, ?ForeignKeyConstraints $on_update=null, ?ForeignKeyConstraints $on_delete=null)
 
 dropForeignKey (string $foreign_key_name, string $table_name)
 
 foreignKeyExists (string $foreign_key_name, string $table_name)
 
 listTables (?string $database=null)
 
 listSequences (?string $database=null)
 
 createConstraint (string $table, string $name, array $definition)
 
 listTableFields (string $table)
 
 listTableConstraints (string $table)
 
 createSequence (string $seq_name, int $start=1, array $options=[])
 
 listTableIndexes (string $table)
 
 alterTable (string $name, array $changes, bool $check)
 
 createIndex (string $table, string $name, array $definition)
 
 dropIndex (string $table, string $name)
 
 dropSequence (string $seq_name)
 
 dropConstraint (string $table, string $name, bool $primary=false)
 
 dropTable (string $name)
 
 getQueryUtils ()
 
 createTable (string $name, array $fields, array $options=[])
 
 addForeignKey (string $foreign_key_name, array $field_names, string $table_name, array $reference_field_names, string $reference_table, ?ForeignKeyConstraints $on_update=null, ?ForeignKeyConstraints $on_delete=null)
 
 foreignKeyExists (string $foreign_key_name, string $table_name)
 
 dropForeignKey (string $foreign_key_name, string $table_name)
 
 getIndexName (string $idx)
 
 getSequenceName (string $sqn)
 

Protected Member Functions

 fixSequenceName (string $sqn, bool $check=false)
 
 fixIndexName (string $idx)
 

Protected Attributes

ilQueryUtilsInterface $query_utils = null
 

Detailed Description

Class ilDBPdoManager.

Author
Fabian Schmid fs@st.nosp@m.uder.nosp@m.-raim.nosp@m.ann..nosp@m.ch

Definition at line 29 of file ilDBPdoManager.php.

Constructor & Destructor Documentation

◆ __construct()

ilDBPdoManager::__construct ( protected \PDO  $pdo,
protected Internal  $db_instance 
)

Definition at line 33 of file ilDBPdoManager.php.

34 {
35 }

Member Function Documentation

◆ addForeignKey()

ilDBPdoManager::addForeignKey ( string  $foreign_key_name,
array  $field_names,
string  $table_name,
array  $reference_field_names,
string  $reference_table,
?ForeignKeyConstraints  $on_update = null,
?ForeignKeyConstraints  $on_delete = null 
)
Parameters
string[]$field_names
string[]$reference_field_names

Implements ilDBManager.

Definition at line 482 of file ilDBPdoManager.php.

490 : bool {
491 $table = $this->db_instance->quoteIdentifier($table_name, true);
492 $reference_table = $this->db_instance->quoteIdentifier($reference_table, true);
493 $field_names = implode(",", $field_names);
494 $field_names = $this->db_instance->quoteIdentifier($field_names, true);
495 $reference_field_names = implode(",", $reference_field_names);
496 $reference_field_names = $this->db_instance->quoteIdentifier($reference_field_names, true);
497 $foreign_key_name = $this->db_instance->quoteIdentifier($foreign_key_name, true);
498 $update = '';
499 if ($on_update !== null) {
500 $on_update = $on_update->value;
501 $update = "ON UPDATE $on_update";
502 }
503 $delete = '';
504 if ($on_delete !== null) {
505 $on_delete = $on_delete->value;
506 $delete = "ON DELETE $on_delete";
507 }
508 $query = "ALTER TABLE
509 $table ADD CONSTRAINT
510 $foreign_key_name FOREIGN KEY ($field_names)
511 REFERENCES $reference_table ($reference_field_names)
512 $update
513 $delete
514 ";
515
516 return (bool) $this->pdo->exec($query);
517 }

◆ alterTable()

ilDBPdoManager::alterTable ( string  $name,
array  $changes,
bool  $check 
)
Exceptions

ilDatabaseException

Implements ilDBManager.

Definition at line 181 of file ilDBPdoManager.php.

181 : bool
182 {
183 $db = $this->db_instance;
184
185 foreach (array_keys($changes) as $change_name) {
186 switch ($change_name) {
187 case 'add':
188 case 'remove':
189 case 'change':
190 case 'rename':
191 case 'name':
192 break;
193 default:
194 throw new ilDatabaseException('change type "' . $change_name . '" not yet supported');
195 }
196 }
197
198 if ($check) {
199 return true;
200 }
201
202 $query = '';
203 if (!empty($changes['name'])) {
204 $change_name = $db->quoteIdentifier($changes['name']);
205 $query .= 'RENAME TO ' . $change_name;
206 }
207
208 if (!empty($changes['add']) && is_array($changes['add'])) {
209 foreach ($changes['add'] as $field_name => $field) {
210 if ($query !== '') {
211 $query .= ', ';
212 }
213 $fd = $db->getFieldDefinition();
214 if ($fd !== null) {
215 $query .= 'ADD ' . $fd->getDeclaration($field['type'], $field_name, $field);
216 }
217 }
218 }
219
220 if (!empty($changes['remove']) && is_array($changes['remove'])) {
221 foreach (array_keys($changes['remove']) as $field_name) {
222 if ($query !== '') {
223 $query .= ', ';
224 }
225 $field_name = $db->quoteIdentifier($field_name);
226 $query .= 'DROP ' . $field_name;
227 }
228 }
229
230 $rename = [];
231 if (!empty($changes['rename']) && is_array($changes['rename'])) {
232 foreach ($changes['rename'] as $field_name => $field) {
233 $rename[$field['name']] = $field_name;
234 }
235 }
236
237 if (!empty($changes['change']) && is_array($changes['change'])) {
238 foreach ($changes['change'] as $field_name => $field) {
239 if ($query !== '') {
240 $query .= ', ';
241 }
242 if (isset($rename[$field_name])) {
243 $old_field_name = $rename[$field_name];
244 unset($rename[$field_name]);
245 } else {
246 $old_field_name = $field_name;
247 }
248 $old_field_name = $db->quoteIdentifier($old_field_name);
249 $fd = $this->db_instance->getFieldDefinition();
250 if ($fd !== null) {
251 $query .= "CHANGE $old_field_name " . $fd
252 ->getDeclaration(
253 $field['definition']['type'],
254 $field_name,
255 $field['definition']
256 );
257 }
258 }
259 }
260
261 if (!empty($rename) && is_array($rename)) {
262 foreach ($rename as $renamed_field) {
263 if ($query !== '') {
264 $query .= ', ';
265 }
266 $field = $changes['rename'][$renamed_field];
267 $renamed_field = $db->quoteIdentifier($renamed_field);
268 $fd = $this->db_instance->getFieldDefinition();
269 if ($fd !== null) {
270 $query .= 'CHANGE ' . $renamed_field . ' ' . $fd
271 ->getDeclaration(
272 $field['definition']['type'],
273 $field['name'],
274 $field['definition']
275 );
276 }
277 }
278 }
279
280 if ($query === '') {
281 return true;
282 }
283
284 $name = $db->quoteIdentifier($name, true);
285
286 $statement = "ALTER TABLE $name $query";
287
288 return (bool) $this->pdo->exec($statement);
289 }
$check
Definition: buildRTE.php:81
Class ilDatabaseException.

References $check.

◆ createConstraint()

ilDBPdoManager::createConstraint ( string  $table,
string  $name,
array  $definition 
)
Exceptions

ilDatabaseException

Implements ilDBManager.

Definition at line 114 of file ilDBPdoManager.php.

114 : bool
115 {
116 $db = $this->db_instance;
117
118 $table = $db->quoteIdentifier($table, true);
119 $name = $db->quoteIdentifier($db->getIndexName($name), true);
120 $query = "ALTER TABLE $table ADD CONSTRAINT $name";
121 if (!empty($definition['primary'])) {
122 $query .= ' PRIMARY KEY';
123 } elseif (!empty($definition['unique'])) {
124 $query .= ' UNIQUE';
125 }
126 $fields = [];
127 foreach (array_keys($definition['fields']) as $field) {
128 $fields[] = $db->quoteIdentifier($field, true);
129 }
130 $query .= ' (' . implode(', ', $fields) . ')';
131
132 return (bool) $this->pdo->exec($query);
133 }

◆ createIndex()

ilDBPdoManager::createIndex ( string  $table,
string  $name,
array  $definition 
)

Implements ilDBManager.

Definition at line 415 of file ilDBPdoManager.php.

415 : bool
416 {
417 $table = $this->db_instance->quoteIdentifier($table, true);
418 $name = $this->db_instance->quoteIdentifier($this->db_instance->getIndexName($name), true);
419 $query = "CREATE INDEX $name ON $table";
420 $fields = [];
421 foreach ($definition['fields'] as $field => $fieldinfo) {
422 if (!empty($fieldinfo['length'])) {
423 $fields[] = $this->db_instance->quoteIdentifier($field, true) . '(' . $fieldinfo['length'] . ')';
424 } else {
425 $fields[] = $this->db_instance->quoteIdentifier($field, true);
426 }
427 }
428 $query .= ' (' . implode(', ', $fields) . ')';
429
430 return (bool) $this->pdo->exec($query);
431 }

◆ createSequence()

ilDBPdoManager::createSequence ( string  $seq_name,
int  $start = 1,
array  $options = [] 
)

Implements ilDBManager.

Definition at line 135 of file ilDBPdoManager.php.

135 : bool
136 {
137 $sequence_name = $this->db_instance->quoteIdentifier($this->db_instance->getSequenceName($seq_name));
138 $seqcol_name = $this->db_instance->quoteIdentifier(ilDBConstants::SEQUENCE_COLUMNS_NAME);
139
140 $options_strings = [];
141
142 if (!empty($options['comment'])) {
143 $options_strings['comment'] = 'COMMENT = ' . $this->db_instance->quote($options['comment'], 'text');
144 }
145
146 if (!empty($options['charset'])) {
147 $options_strings['charset'] = 'DEFAULT CHARACTER SET ' . $options['charset'];
148 if (!empty($options['collate'])) {
149 $options_strings['charset'] .= ' COLLATE ' . $options['collate'];
150 }
151 }
152
153 $type = false;
154 if (!empty($options['type'])) {
155 $type = $options['type'];
156 }
157 if ($type) {
158 $options_strings[] = "ENGINE = $type";
159 }
160
161 $query = "CREATE TABLE $sequence_name ($seqcol_name INT NOT NULL AUTO_INCREMENT, PRIMARY KEY ($seqcol_name))";
162
163 if (!empty($options_strings)) {
164 $query .= ' ' . implode(' ', $options_strings);
165 }
166 $this->pdo->exec($query);
167
168 if ($start === 1) {
169 return true;
170 }
171
172 $query = "INSERT INTO $sequence_name ($seqcol_name) VALUES (" . ($start - 1) . ')';
173 $this->pdo->exec($query);
174
175 return true;
176 }
const SEQUENCE_COLUMNS_NAME

References ILIAS\UI\Implementation\Component\Input\Field\$options, and ilDBConstants\SEQUENCE_COLUMNS_NAME.

◆ createTable()

ilDBPdoManager::createTable ( string  $name,
array  $fields,
array  $options = [] 
)

Implements ilDBManager.

Definition at line 291 of file ilDBPdoManager.php.

291 : bool
292 {
293 $options['type'] = $this->db_instance->getStorageEngine();
294
295 return (bool) $this->pdo->exec($this->getQueryUtils()->createTable($name, $fields, $options));
296 }
createTable(string $name, array $fields, array $options=[])

References ILIAS\UI\Implementation\Component\Input\Field\$options, createTable(), and getQueryUtils().

Referenced by createTable().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dropConstraint()

ilDBPdoManager::dropConstraint ( string  $table,
string  $name,
bool  $primary = false 
)

Implements ilDBManager.

Definition at line 456 of file ilDBPdoManager.php.

456 : bool
457 {
458 $db = $this->getDBInstance();
459 $table = $db->quoteIdentifier($table, true);
460 if ($primary || strtolower($name) === 'primary') {
461 $query = "ALTER TABLE $table DROP PRIMARY KEY";
462 } else {
463 $name = $db->quoteIdentifier($db->getIndexName($name), true);
464 $query = "ALTER TABLE $table DROP INDEX $name";
465 }
466
467 return (bool) $this->pdo->exec($query);
468 }

References getDBInstance().

+ Here is the call graph for this function:

◆ dropForeignKey()

ilDBPdoManager::dropForeignKey ( string  $foreign_key_name,
string  $table_name 
)

Implements ilDBManager.

Definition at line 519 of file ilDBPdoManager.php.

519 : bool
520 {
521 $table = $this->db_instance->quoteIdentifier($table_name, true);
522 $name = $this->db_instance->quoteIdentifier($foreign_key_name, true);
523 $query = "ALTER TABLE $table DROP FOREIGN KEY $name;";
524
525 return (bool) $this->pdo->exec($query);
526 }

◆ dropIndex()

ilDBPdoManager::dropIndex ( string  $table,
string  $name 
)

Implements ilDBManager.

Definition at line 433 of file ilDBPdoManager.php.

433 : bool
434 {
435 $table = $this->db_instance->quoteIdentifier($table, true);
436 $name = $this->db_instance->quoteIdentifier($this->db_instance->getIndexName($name), true);
437
438 return (bool) $this->pdo->exec("DROP INDEX $name ON $table");
439 }

◆ dropSequence()

ilDBPdoManager::dropSequence ( string  $seq_name)

Implements ilDBManager.

Definition at line 441 of file ilDBPdoManager.php.

441 : bool
442 {
443 $sequence_name = $this->db_instance->quoteIdentifier($this->db_instance->getSequenceName($seq_name));
444
445 return (bool) $this->pdo->exec("DROP TABLE $sequence_name");
446 }

◆ dropTable()

ilDBPdoManager::dropTable ( string  $name)
Parameters
$namestring

Implements ilDBManager.

Definition at line 470 of file ilDBPdoManager.php.

470 : bool
471 {
472 $db = $this->getDBInstance();
473 $name = $db->quoteIdentifier($name, true);
474
475 return (bool) $this->pdo->exec("DROP TABLE $name");
476 }

References getDBInstance().

+ Here is the call graph for this function:

◆ fixIndexName()

ilDBPdoManager::fixIndexName ( string  $idx)
protected

Definition at line 404 of file ilDBPdoManager.php.

404 : string
405 {
406 $idx_pattern = '/^' . preg_replace('/%s/', '([a-z0-9_]+)', FieldDefinition::INDEX_FORMAT) . '$/i';
407 $idx_name = preg_replace($idx_pattern, '\\1', $idx);
408 if ($idx_name && !strcasecmp($idx, $this->db_instance->getIndexName($idx_name))) {
409 return $idx_name;
410 }
411
412 return $idx;
413 }

Referenced by listTableConstraints(), and listTableIndexes().

+ Here is the caller graph for this function:

◆ fixSequenceName()

ilDBPdoManager::fixSequenceName ( string  $sqn,
bool  $check = false 
)
protected

Definition at line 70 of file ilDBPdoManager.php.

70 : string
71 {
72 $seq_pattern = '/^' . preg_replace('/%s/', '([a-z0-9_]+)', ilDBConstants::SEQUENCE_FORMAT) . '$/i';
73 $seq_name = preg_replace($seq_pattern, '\\1', $sqn);
74 if ($seq_name && !strcasecmp($sqn, $this->db_instance->getSequenceName($seq_name))) {
75 return $seq_name;
76 }
77
78 return $sqn;
79 }
const SEQUENCE_FORMAT

References ilDBConstants\SEQUENCE_FORMAT.

Referenced by listSequences().

+ Here is the caller graph for this function:

◆ foreignKeyExists()

ilDBPdoManager::foreignKeyExists ( string  $foreign_key_name,
string  $table_name 
)

Implements ilDBManager.

Definition at line 528 of file ilDBPdoManager.php.

528 : bool
529 {
530 $query = "SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE='FOREIGN KEY';";
531 $result_set = $this->db_instance->query($query);
532 while ($foreign_data = $this->db_instance->fetchAssoc($result_set)) {
533 if (array_key_exists(
534 'CONSTRAINT_NAME',
535 $foreign_data
536 ) && $foreign_data['CONSTRAINT_NAME'] === $foreign_key_name) {
537 return true;
538 }
539 }
540 return false;
541 }

◆ getDBInstance()

ilDBPdoManager::getDBInstance ( )

Definition at line 46 of file ilDBPdoManager.php.

46 : Internal
47 {
48 return $this->db_instance;
49 }

Referenced by dropConstraint(), dropTable(), and listTableConstraints().

+ Here is the caller graph for this function:

◆ getIndexName()

ilDBPdoManager::getIndexName ( string  $idx)

Implements ilDBPdoManagerInterface.

Definition at line 298 of file ilDBPdoManager.php.

298 : string
299 {
300 return $this->db_instance->getIndexName($idx);
301 }

◆ getQueryUtils()

ilDBPdoManager::getQueryUtils ( )

Implements ilDBManager.

Definition at line 37 of file ilDBPdoManager.php.

38 {
39 if ($this->query_utils === null) {
40 $this->query_utils = new ilMySQLQueryUtils($this->db_instance);
41 }
42
43 return $this->query_utils;
44 }
ilQueryUtilsInterface $query_utils
Class ilMySQLQueryUtils.
Interface ilQueryUtilsInterface.

References $query_utils.

Referenced by createTable(), and getTableCreationQuery().

+ Here is the caller graph for this function:

◆ getSequenceName()

ilDBPdoManager::getSequenceName ( string  $sqn)

Implements ilDBPdoManagerInterface.

Definition at line 303 of file ilDBPdoManager.php.

303 : string
304 {
305 return $this->db_instance->getSequenceName($sqn);
306 }

◆ getTableCreationQuery()

ilDBPdoManager::getTableCreationQuery ( string  $name,
array  $fields,
array  $options = [] 
)
Exceptions

ilDatabaseException

Definition at line 451 of file ilDBPdoManager.php.

451 : string
452 {
453 return $this->getQueryUtils()->createTable($name, $fields, $options);
454 }

References ILIAS\UI\Implementation\Component\Input\Field\$options, and getQueryUtils().

+ Here is the call graph for this function:

◆ listSequences()

ilDBPdoManager::listSequences ( ?string  $database = null)
Returns
string[]

Implements ilDBManager.

Definition at line 84 of file ilDBPdoManager.php.

84 : array
85 {
86 $query = "SHOW TABLES LIKE '%_seq'";
87 if (!is_null($database)) {
88 $query .= " FROM $database";
89 }
90
91 $res = $this->db_instance->query($query);
92
93 $result = [];
94 while ($table_name = $this->db_instance->fetchAssoc($res)) {
95 $sqn = $this->fixSequenceName(reset($table_name), true);
96 if ($sqn !== '' && $sqn !== '0') {
97 $result[] = $sqn;
98 }
99 }
100 // @Todo: Change property access to method call.
101 if ($this->db_instance->options['portability'] ?? null) {
102 return array_map(
103 ($this->db_instance->options['field_case'] === CASE_LOWER ? 'strtolower' : 'strtoupper'),
104 $result
105 );
106 }
107
108 return $result;
109 }
fixSequenceName(string $sqn, bool $check=false)
$res
Definition: ltiservices.php:69

References $res, and fixSequenceName().

+ Here is the call graph for this function:

◆ listTableConstraints()

ilDBPdoManager::listTableConstraints ( string  $table)
Returns
string[]

Implements ilDBManager.

Definition at line 324 of file ilDBPdoManager.php.

324 : array
325 {
326 $key_name = 'Key_name';
327 $non_unique = 'Non_unique';
328
329 $db = $this->getDBInstance();
330 // @Todo: Change property access to method call.
331 if ($db->options['portability'] ?? null) {
332 if ($db->options['field_case'] == CASE_LOWER) {
333 $key_name = strtolower($key_name);
334 $non_unique = strtolower($non_unique);
335 } else {
336 $key_name = strtoupper($key_name);
337 $non_unique = strtoupper($non_unique);
338 }
339 }
340
341 $table = $this->db_instance->quoteIdentifier($table);
342 $query = "SHOW INDEX FROM $table";
343 $result_set = $this->db_instance->query($query);
344
345 $result = [];
346 while ($index_data = $this->db_instance->fetchAssoc($result_set)) {
347 if (!$index_data[$non_unique]) {
348 $index = $index_data[$key_name] !== 'PRIMARY' ? $this->fixIndexName($index_data[$key_name]) : 'PRIMARY';
349 if (!empty($index)) {
350 $index = strtolower($index);
351 $result[$index] = true;
352 }
353 }
354 }
355
356 if ($this->db_instance->options['portability'] ?? null) {
357 // @Todo: Change property access to method call.
358 $result = array_change_key_case($result, $this->db_instance->options['field_case']);
359 }
360
361 return array_keys($result);
362 }
fixIndexName(string $idx)

References fixIndexName(), and getDBInstance().

+ Here is the call graph for this function:

◆ listTableFields()

ilDBPdoManager::listTableFields ( string  $table)
Returns
string[]

Implements ilDBManager.

Definition at line 308 of file ilDBPdoManager.php.

308 : array
309 {
310 $table = $this->db_instance->quoteIdentifier($table);
311 $query = "SHOW COLUMNS FROM $table";
312 $result = $this->db_instance->query($query);
313 $return = [];
314 while ($data = $this->db_instance->fetchObject($result)) {
315 $return[] = $data->Field;
316 }
317
318 return $return;
319 }

References $data.

◆ listTableIndexes()

ilDBPdoManager::listTableIndexes ( string  $table)
Returns
string[]

Implements ilDBManager.

Definition at line 367 of file ilDBPdoManager.php.

367 : array
368 {
369 $key_name = 'Key_name';
370 $non_unique = 'Non_unique';
371 // @Todo: Change property access to method call.
372 if ($this->db_instance->options['portability'] ?? null) {
373 if ($this->db_instance->options['field_case'] == CASE_LOWER) {
374 $key_name = strtolower($key_name);
375 $non_unique = strtolower($non_unique);
376 } else {
377 $key_name = strtoupper($key_name);
378 $non_unique = strtoupper($non_unique);
379 }
380 }
381
382 $table = $this->db_instance->quoteIdentifier($table);
383 $query = "SHOW INDEX FROM $table";
384 $result_set = $this->db_instance->query($query);
385 $indexes = [];
386 while ($index_data = $this->db_instance->fetchAssoc($result_set)) {
387 $indexes[] = $index_data;
388 }
389 $result = [];
390 foreach ($indexes as $index_data) {
391 if ($index_data[$non_unique] && ($index = $this->fixIndexName($index_data[$key_name]))) {
392 $result[$index] = true;
393 }
394 }
395
396 // @Todo: Change property access to method call.
397 if ($this->db_instance->options['portability'] ?? null) {
398 $result = array_change_key_case($result, $this->db_instance->options['field_case']);
399 }
400
401 return array_keys($result);
402 }

References fixIndexName().

+ Here is the call graph for this function:

◆ listTables()

ilDBPdoManager::listTables ( ?string  $database = null)
Returns
int[]|string[]

Implements ilDBManager.

Definition at line 54 of file ilDBPdoManager.php.

54 : array
55 {
56 $str = 'SHOW TABLES ' . ($database ? ' IN ' . $database : '');
57 $r = $this->pdo->query($str);
58 $tables = [];
59
60 $sequence_identifier = "_seq";
61 while ($data = $r->fetchColumn()) {
62 if (!preg_match("/$sequence_identifier$/um", (string) $data)) {
63 $tables[] = $data;
64 }
65 }
66
67 return $tables;
68 }

References $data.

Field Documentation

◆ $query_utils

ilQueryUtilsInterface ilDBPdoManager::$query_utils = null
protected

Definition at line 31 of file ilDBPdoManager.php.

Referenced by getQueryUtils().


The documentation for this class was generated from the following file: