Merge pull request #18839 from kamil-tekiela/getColumnsInfo
Refactor Designer/Common::getColumnsInfo()
This commit is contained in:
commit
566842be66
@ -8690,26 +8690,6 @@ parameters:
|
||||
count: 1
|
||||
path: src/Database/CentralColumns.php
|
||||
|
||||
-
|
||||
message: "#^Cannot access offset 'COLUMN_ID' on mixed\\.$#"
|
||||
count: 2
|
||||
path: src/Database/Designer.php
|
||||
|
||||
-
|
||||
message: "#^Cannot access offset 'COLUMN_NAME' on mixed\\.$#"
|
||||
count: 2
|
||||
path: src/Database/Designer.php
|
||||
|
||||
-
|
||||
message: "#^Cannot access offset 'TYPE' on mixed\\.$#"
|
||||
count: 18
|
||||
path: src/Database/Designer.php
|
||||
|
||||
-
|
||||
message: "#^Cannot access offset int\\<0, max\\> on mixed\\.$#"
|
||||
count: 20
|
||||
path: src/Database/Designer.php
|
||||
|
||||
-
|
||||
message: "#^Cannot cast mixed to string\\.$#"
|
||||
count: 2
|
||||
@ -8725,16 +8705,6 @@ parameters:
|
||||
count: 1
|
||||
path: src/Database/Designer.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$haystack of function str_contains expects string, mixed given\\.$#"
|
||||
count: 18
|
||||
path: src/Database/Designer.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, mixed given\\.$#"
|
||||
count: 2
|
||||
path: src/Database/Designer.php
|
||||
|
||||
-
|
||||
message: "#^Argument of an invalid type mixed supplied for foreach, only iterables are supported\\.$#"
|
||||
count: 3
|
||||
|
||||
@ -4745,82 +4745,12 @@
|
||||
<DeprecatedMethod>
|
||||
<code>Config::getInstance()</code>
|
||||
</DeprecatedMethod>
|
||||
<MixedArgument>
|
||||
<code><![CDATA[$tabColumn[$tableName]['COLUMN_ID']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['COLUMN_ID']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
</MixedArgument>
|
||||
<MixedArrayAccess>
|
||||
<code><![CDATA[$tabColumn[$tableName]['COLUMN_ID']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['COLUMN_ID']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['COLUMN_NAME']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['COLUMN_NAME']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['COLUMN_NAME'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['COLUMN_NAME'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE']]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['TYPE'][$j]]]></code>
|
||||
</MixedArrayAccess>
|
||||
<MixedAssignment>
|
||||
<code>$params</code>
|
||||
</MixedAssignment>
|
||||
<MixedInferredReturnType>
|
||||
<code>mixed[]</code>
|
||||
</MixedInferredReturnType>
|
||||
<MixedOperand>
|
||||
<code><![CDATA[$tabColumn[$tableName]['COLUMN_NAME'][$j]]]></code>
|
||||
<code><![CDATA[$tabColumn[$tableName]['COLUMN_NAME'][$j]]]></code>
|
||||
</MixedOperand>
|
||||
<MixedReturnStatement>
|
||||
<code>$params</code>
|
||||
<code>$params</code>
|
||||
|
||||
@ -63,12 +63,12 @@
|
||||
<tbody id="id_tbody_{{ t_n_url }}"
|
||||
{{- tab_pos[t_n] is defined and tab_pos[t_n]['V'] is empty ? ' style="display: none"' }}>
|
||||
{% set display_field = designerTable.getDisplayField() %}
|
||||
{% for j in 0..tab_column[t_n]['COLUMN_ID']|length - 1 %}
|
||||
{% set col_name = tab_column[t_n]['COLUMN_NAME'][j] %}
|
||||
{% set tmp_column = t_n ~ '.' ~ tab_column[t_n]['COLUMN_NAME'][j] %}
|
||||
{% for j in 0..tab_column[t_n]|length - 1 %}
|
||||
{% set col_name = tab_column[t_n][j].name %}
|
||||
{% set tmp_column = t_n ~ '.' ~ tab_column[t_n][j].name %}
|
||||
{% set click_field_param = [
|
||||
designerTable.getTableName()|escape('url'),
|
||||
tab_column[t_n]['COLUMN_NAME'][j]|url_encode
|
||||
tab_column[t_n][j].name|url_encode
|
||||
] %}
|
||||
{% if not designerTable.supportsForeignkeys() %}
|
||||
{% set click_field_param = click_field_param|merge([tables_pk_or_unique_keys[tmp_column] is defined ? 1 : 0]) %}
|
||||
@ -78,15 +78,15 @@
|
||||
{% set click_field_param = click_field_param|merge([tables_all_keys[tmp_column] is defined ? 1 : 0]) %}
|
||||
{% endif %}
|
||||
{% set click_field_param = click_field_param|merge([db]) %}
|
||||
<tr id="id_tr_{{ designerTable.getTableName()|escape('url') }}.{{ tab_column[t_n]['COLUMN_NAME'][j] }}" class="tab_field
|
||||
{{- display_field == tab_column[t_n]['COLUMN_NAME'][j] ? '_3' }}" click_field_param="
|
||||
<tr id="id_tr_{{ designerTable.getTableName()|escape('url') }}.{{ tab_column[t_n][j].name }}" class="tab_field
|
||||
{{- display_field == tab_column[t_n][j].name ? '_3' }}" click_field_param="
|
||||
{{- click_field_param|join(',') }}">
|
||||
{% if has_query %}
|
||||
<td class="select_all">
|
||||
<input class="select_all_store_col"
|
||||
value="{{ t_n_url }}{{ tab_column[t_n]['COLUMN_NAME'][j]|url_encode }}"
|
||||
value="{{ t_n_url }}{{ tab_column[t_n][j].name|url_encode }}"
|
||||
type="checkbox"
|
||||
id="select_{{ t_n_url }}._{{ tab_column[t_n]['COLUMN_NAME'][j]|url_encode }}"
|
||||
id="select_{{ t_n_url }}._{{ tab_column[t_n][j].name|url_encode }}"
|
||||
style="margin: 0;"
|
||||
title="{{ 'Select "%s"'|trans|format(col_name) }}"
|
||||
id_check_all="select_all_{{ i }}"
|
||||
@ -96,11 +96,11 @@
|
||||
</td>
|
||||
{% endif %}
|
||||
<td width="10px" colspan="3" id="{{ t_n_url }}.
|
||||
{{- tab_column[t_n]['COLUMN_NAME'][j]|url_encode }}">
|
||||
{{- tab_column[t_n][j].name|url_encode }}">
|
||||
<div class="text-nowrap">
|
||||
{% set type = columns_type[t_n ~ '.' ~ tab_column[t_n]['COLUMN_NAME'][j]] %}
|
||||
{% set type = columns_type[t_n ~ '.' ~ tab_column[t_n][j].name] %}
|
||||
<img src="{{ image(type) }}.png" alt="*">
|
||||
{{ tab_column[t_n]['COLUMN_NAME'][j] }} : {{ tab_column[t_n]['TYPE'][j] }}
|
||||
{{ tab_column[t_n][j].name }} : {{ tab_column[t_n][j].type }}
|
||||
</div>
|
||||
</td>
|
||||
{% if has_query %}
|
||||
|
||||
@ -6,6 +6,7 @@ namespace PhpMyAdmin\Database;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Database\Designer\ColumnInfo;
|
||||
use PhpMyAdmin\Database\Designer\DesignerTable;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Message;
|
||||
@ -15,7 +16,6 @@ use PhpMyAdmin\Util;
|
||||
use stdClass;
|
||||
|
||||
use function __;
|
||||
use function count;
|
||||
use function intval;
|
||||
use function is_array;
|
||||
use function json_decode;
|
||||
@ -212,13 +212,13 @@ class Designer
|
||||
/**
|
||||
* Get HTML to display tables on designer page
|
||||
*
|
||||
* @param string $db The database name from the request
|
||||
* @param DesignerTable[] $designerTables The designer tables
|
||||
* @param mixed[] $tabPos tables positions
|
||||
* @param int $displayPage page number of the selected page
|
||||
* @param mixed[] $tabColumn table column info
|
||||
* @param mixed[] $tablesAllKeys all indices
|
||||
* @param mixed[] $tablesPkOrUniqueKeys unique or primary indices
|
||||
* @param string $db The database name from the request
|
||||
* @param DesignerTable[] $designerTables The designer tables
|
||||
* @param mixed[] $tabPos tables positions
|
||||
* @param int $displayPage page number of the selected page
|
||||
* @param list<ColumnInfo>[] $tableColumnsInfo table column info
|
||||
* @param mixed[] $tablesAllKeys all indices
|
||||
* @param mixed[] $tablesPkOrUniqueKeys unique or primary indices
|
||||
*
|
||||
* @return string html
|
||||
*/
|
||||
@ -227,38 +227,36 @@ class Designer
|
||||
array $designerTables,
|
||||
array $tabPos,
|
||||
int $displayPage,
|
||||
array $tabColumn,
|
||||
array $tableColumnsInfo,
|
||||
array $tablesAllKeys,
|
||||
array $tablesPkOrUniqueKeys,
|
||||
): string {
|
||||
$GLOBALS['text_dir'] ??= null;
|
||||
|
||||
$columnsType = [];
|
||||
foreach ($designerTables as $designerTable) {
|
||||
$tableName = $designerTable->getDbTableString();
|
||||
$limit = count($tabColumn[$tableName]['COLUMN_ID']);
|
||||
for ($j = 0; $j < $limit; $j++) {
|
||||
$tableColumnName = $tableName . '.' . $tabColumn[$tableName]['COLUMN_NAME'][$j];
|
||||
foreach ($tableColumnsInfo as $tableName => $columnsInfo) {
|
||||
foreach ($columnsInfo as $columnInfo) {
|
||||
$tableColumnName = $tableName . '.' . $columnInfo->name;
|
||||
if (isset($tablesPkOrUniqueKeys[$tableColumnName])) {
|
||||
$columnsType[$tableColumnName] = 'designer/FieldKey_small';
|
||||
} else {
|
||||
$columnsType[$tableColumnName] = 'designer/Field_small';
|
||||
if (
|
||||
str_contains($tabColumn[$tableName]['TYPE'][$j], 'char')
|
||||
|| str_contains($tabColumn[$tableName]['TYPE'][$j], 'text')
|
||||
str_contains($columnInfo->type, 'char')
|
||||
|| str_contains($columnInfo->type, 'text')
|
||||
) {
|
||||
$columnsType[$tableColumnName] .= '_char';
|
||||
} elseif (
|
||||
str_contains($tabColumn[$tableName]['TYPE'][$j], 'int')
|
||||
|| str_contains($tabColumn[$tableName]['TYPE'][$j], 'float')
|
||||
|| str_contains($tabColumn[$tableName]['TYPE'][$j], 'double')
|
||||
|| str_contains($tabColumn[$tableName]['TYPE'][$j], 'decimal')
|
||||
str_contains($columnInfo->type, 'int')
|
||||
|| str_contains($columnInfo->type, 'float')
|
||||
|| str_contains($columnInfo->type, 'double')
|
||||
|| str_contains($columnInfo->type, 'decimal')
|
||||
) {
|
||||
$columnsType[$tableColumnName] .= '_int';
|
||||
} elseif (
|
||||
str_contains($tabColumn[$tableName]['TYPE'][$j], 'date')
|
||||
|| str_contains($tabColumn[$tableName]['TYPE'][$j], 'time')
|
||||
|| str_contains($tabColumn[$tableName]['TYPE'][$j], 'year')
|
||||
str_contains($columnInfo->type, 'date')
|
||||
|| str_contains($columnInfo->type, 'time')
|
||||
|| str_contains($columnInfo->type, 'year')
|
||||
) {
|
||||
$columnsType[$tableColumnName] .= '_date';
|
||||
}
|
||||
@ -273,7 +271,7 @@ class Designer
|
||||
'has_query' => isset($_REQUEST['query']),
|
||||
'tab_pos' => $tabPos,
|
||||
'display_page' => $displayPage,
|
||||
'tab_column' => $tabColumn,
|
||||
'tab_column' => $tableColumnsInfo,
|
||||
'tables_all_keys' => $tablesAllKeys,
|
||||
'tables_pk_or_unique_keys' => $tablesPkOrUniqueKeys,
|
||||
'tables' => $designerTables,
|
||||
@ -284,20 +282,20 @@ class Designer
|
||||
/**
|
||||
* Returns HTML for Designer page
|
||||
*
|
||||
* @param string $db database in use
|
||||
* @param string $getDb database in url
|
||||
* @param DesignerTable[] $designerTables The designer tables
|
||||
* @param mixed[] $scriptTables array on foreign key support for each table
|
||||
* @param mixed[] $scriptContr initialization data array
|
||||
* @param DesignerTable[] $scriptDisplayField displayed tables in designer with their display fields
|
||||
* @param int $displayPage page number of the selected page
|
||||
* @param bool $visualBuilderMode whether this is visual query builder
|
||||
* @param string|null $selectedPage name of the selected page
|
||||
* @param mixed[] $paramsArray array with class name for various buttons on side menu
|
||||
* @param mixed[] $tablePositions table positions
|
||||
* @param mixed[] $tabColumn table column info
|
||||
* @param mixed[] $tablesAllKeys all indices
|
||||
* @param mixed[] $tablesPkOrUniqueKeys unique or primary indices
|
||||
* @param string $db database in use
|
||||
* @param string $getDb database in url
|
||||
* @param DesignerTable[] $designerTables The designer tables
|
||||
* @param mixed[] $scriptTables array on foreign key support for each table
|
||||
* @param mixed[] $scriptContr initialization data array
|
||||
* @param DesignerTable[] $scriptDisplayField displayed tables in designer with their display fields
|
||||
* @param int $displayPage page number of the selected page
|
||||
* @param bool $visualBuilderMode whether this is visual query builder
|
||||
* @param string|null $selectedPage name of the selected page
|
||||
* @param mixed[] $paramsArray array with class name for various buttons on side menu
|
||||
* @param mixed[] $tablePositions table positions
|
||||
* @param list<ColumnInfo>[] $tableColumnsInfo table column info
|
||||
* @param mixed[] $tablesAllKeys all indices
|
||||
* @param mixed[] $tablesPkOrUniqueKeys unique or primary indices
|
||||
*
|
||||
* @return string html
|
||||
*/
|
||||
@ -313,7 +311,7 @@ class Designer
|
||||
string|null $selectedPage,
|
||||
array $paramsArray,
|
||||
array $tablePositions,
|
||||
array $tabColumn,
|
||||
array $tableColumnsInfo,
|
||||
array $tablesAllKeys,
|
||||
array $tablesPkOrUniqueKeys,
|
||||
): string {
|
||||
@ -321,31 +319,29 @@ class Designer
|
||||
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
$columnsType = [];
|
||||
foreach ($designerTables as $designerTable) {
|
||||
$tableName = $designerTable->getDbTableString();
|
||||
$limit = count($tabColumn[$tableName]['COLUMN_ID']);
|
||||
for ($j = 0; $j < $limit; $j++) {
|
||||
$tableColumnName = $tableName . '.' . $tabColumn[$tableName]['COLUMN_NAME'][$j];
|
||||
foreach ($tableColumnsInfo as $tableName => $columnsInfo) {
|
||||
foreach ($columnsInfo as $columnInfo) {
|
||||
$tableColumnName = $tableName . '.' . $columnInfo->name;
|
||||
if (isset($tablesPkOrUniqueKeys[$tableColumnName])) {
|
||||
$columnsType[$tableColumnName] = 'designer/FieldKey_small';
|
||||
} else {
|
||||
$columnsType[$tableColumnName] = 'designer/Field_small';
|
||||
if (
|
||||
str_contains($tabColumn[$tableName]['TYPE'][$j], 'char')
|
||||
|| str_contains($tabColumn[$tableName]['TYPE'][$j], 'text')
|
||||
str_contains($columnInfo->type, 'char')
|
||||
|| str_contains($columnInfo->type, 'text')
|
||||
) {
|
||||
$columnsType[$tableColumnName] .= '_char';
|
||||
} elseif (
|
||||
str_contains($tabColumn[$tableName]['TYPE'][$j], 'int')
|
||||
|| str_contains($tabColumn[$tableName]['TYPE'][$j], 'float')
|
||||
|| str_contains($tabColumn[$tableName]['TYPE'][$j], 'double')
|
||||
|| str_contains($tabColumn[$tableName]['TYPE'][$j], 'decimal')
|
||||
str_contains($columnInfo->type, 'int')
|
||||
|| str_contains($columnInfo->type, 'float')
|
||||
|| str_contains($columnInfo->type, 'double')
|
||||
|| str_contains($columnInfo->type, 'decimal')
|
||||
) {
|
||||
$columnsType[$tableColumnName] .= '_int';
|
||||
} elseif (
|
||||
str_contains($tabColumn[$tableName]['TYPE'][$j], 'date')
|
||||
|| str_contains($tabColumn[$tableName]['TYPE'][$j], 'time')
|
||||
|| str_contains($tabColumn[$tableName]['TYPE'][$j], 'year')
|
||||
str_contains($columnInfo->type, 'date')
|
||||
|| str_contains($columnInfo->type, 'time')
|
||||
|| str_contains($columnInfo->type, 'year')
|
||||
) {
|
||||
$columnsType[$tableColumnName] .= '_date';
|
||||
}
|
||||
@ -382,7 +378,7 @@ class Designer
|
||||
'selected_page' => $selectedPage,
|
||||
'params_array' => $paramsArray,
|
||||
'tab_pos' => $tablePositions,
|
||||
'tab_column' => $tabColumn,
|
||||
'tab_column' => $tableColumnsInfo,
|
||||
'tables_all_keys' => $tablesAllKeys,
|
||||
'tables_pk_or_unique_keys' => $tablesPkOrUniqueKeys,
|
||||
'designerTables' => $designerTables,
|
||||
|
||||
14
src/Database/Designer/ColumnInfo.php
Normal file
14
src/Database/Designer/ColumnInfo.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Database\Designer;
|
||||
|
||||
final class ColumnInfo
|
||||
{
|
||||
public function __construct(
|
||||
public readonly string $name,
|
||||
public readonly string $type,
|
||||
) {
|
||||
}
|
||||
}
|
||||
@ -40,8 +40,8 @@ class Common
|
||||
/**
|
||||
* Retrieves table info and returns it
|
||||
*
|
||||
* @param string $db (optional) Filter only a DB ($table is required if you use $db)
|
||||
* @param string $table (optional) Filter only a table ($db is now required)
|
||||
* @param string|null $db (optional) Filter only a DB ($table is required if you use $db)
|
||||
* @param string|null $table (optional) Filter only a table ($db is now required)
|
||||
*
|
||||
* @return DesignerTable[] with table info
|
||||
*/
|
||||
@ -76,11 +76,10 @@ class Common
|
||||
*
|
||||
* @param DesignerTable[] $designerTables The designer tables
|
||||
*
|
||||
* @return mixed[] table column nfo
|
||||
* @return list<ColumnInfo>[] table column nfo
|
||||
*/
|
||||
public function getColumnsInfo(array $designerTables): array
|
||||
{
|
||||
//$this->dbi->selectDb($GLOBALS['db']);
|
||||
$tabColumn = [];
|
||||
|
||||
foreach ($designerTables as $designerTable) {
|
||||
@ -90,17 +89,12 @@ class Common
|
||||
$designerTable->getTableName(),
|
||||
),
|
||||
);
|
||||
$j = 0;
|
||||
while ($row = $fieldsRs->fetchAssoc()) {
|
||||
if (! isset($tabColumn[$designerTable->getDbTableString()])) {
|
||||
$tabColumn[$designerTable->getDbTableString()] = [];
|
||||
}
|
||||
|
||||
$tabColumn[$designerTable->getDbTableString()]['COLUMN_ID'][$j] = $j;
|
||||
$tabColumn[$designerTable->getDbTableString()]['COLUMN_NAME'][$j] = $row['Field'];
|
||||
$tabColumn[$designerTable->getDbTableString()]['TYPE'][$j] = $row['Type'];
|
||||
$tabColumn[$designerTable->getDbTableString()]['NULLABLE'][$j] = $row['Null'];
|
||||
$j++;
|
||||
/**
|
||||
* @var string $field
|
||||
* @var string $type
|
||||
*/
|
||||
foreach ($fieldsRs as ['Field' => $field, 'Type' => $type]) {
|
||||
$tabColumn[$designerTable->getDbTableString()][] = new ColumnInfo($field, $type);
|
||||
}
|
||||
}
|
||||
|
||||
@ -307,12 +301,12 @@ class Common
|
||||
|
||||
$query = 'DELETE FROM ' . Util::backquote($pdfFeature->database)
|
||||
. '.' . Util::backquote($pdfFeature->tableCoords)
|
||||
. ' WHERE ' . Util::backquote('pdf_page_number') . ' = ' . intval($pg);
|
||||
. ' WHERE ' . Util::backquote('pdf_page_number') . ' = ' . $pg;
|
||||
$this->dbi->queryAsControlUser($query);
|
||||
|
||||
$query = 'DELETE FROM ' . Util::backquote($pdfFeature->database)
|
||||
. '.' . Util::backquote($pdfFeature->pdfPages)
|
||||
. ' WHERE ' . Util::backquote('page_nr') . ' = ' . intval($pg);
|
||||
. ' WHERE ' . Util::backquote('page_nr') . ' = ' . $pg;
|
||||
$this->dbi->queryAsControlUser($query);
|
||||
|
||||
return true;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user