From c51f5f72feed01e8c4dfefd55df8ca0adc922ae7 Mon Sep 17 00:00:00 2001 From: Liviu-Mihail Concioiu Date: Thu, 19 Feb 2026 03:16:52 +0100 Subject: [PATCH] MediaWiki - Allow export of geometry and binary fields Signed-off-by: Liviu-Mihail Concioiu --- libraries/classes/Plugins/Export/ExportMediawiki.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libraries/classes/Plugins/Export/ExportMediawiki.php b/libraries/classes/Plugins/Export/ExportMediawiki.php index 1e990cc7cf..f18b7a351b 100644 --- a/libraries/classes/Plugins/Export/ExportMediawiki.php +++ b/libraries/classes/Plugins/Export/ExportMediawiki.php @@ -8,6 +8,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Plugins\Export; use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\FieldMetadata; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup; @@ -19,6 +20,7 @@ use PhpMyAdmin\Util; use function __; use function array_values; +use function bin2hex; use function count; use function htmlspecialchars; use function str_repeat; @@ -317,12 +319,20 @@ class ExportMediawiki extends ExportPlugin // Get the table data from the database $result = $dbi->query($sqlQuery, DatabaseInterface::CONNECT_USER, DatabaseInterface::QUERY_UNBUFFERED); $fields_cnt = $result->numFields(); + /** @var FieldMetadata[] $fieldsMeta */ + $fieldsMeta = $dbi->getFieldsMeta($result); while ($row = $result->fetchRow()) { $output .= '|-' . $this->exportCRLF(); // Use '|' for separating table columns for ($i = 0; $i < $fields_cnt; ++$i) { + if (! isset($row[$i])) { + $row[$i] = 'NULL'; + } elseif ($fieldsMeta[$i]->isMappedTypeGeometry || $fieldsMeta[$i]->isBinary) { + $row[$i] = '0x' . bin2hex($row[$i]); + } + $output .= ' | ' . $row[$i] . '' . $this->exportCRLF(); } }