XML - Allow export of geometry and binary fields

Signed-off-by: Liviu-Mihail Concioiu <liviu.concioiu@gmail.com>
This commit is contained in:
Liviu-Mihail Concioiu 2026-02-19 03:14:48 +01:00
parent d2e96b6d7e
commit 4341d2c45e

View File

@ -5,6 +5,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;
@ -15,6 +16,7 @@ use PhpMyAdmin\Util;
use PhpMyAdmin\Version;
use function __;
use function bin2hex;
use function count;
use function htmlspecialchars;
use function is_array;
@ -463,6 +465,8 @@ class ExportXml extends ExportPlugin
$result = $dbi->query($sqlQuery, DatabaseInterface::CONNECT_USER, DatabaseInterface::QUERY_UNBUFFERED);
$columns_cnt = $result->numFields();
/** @var FieldMetadata[] $fieldsMeta */
$fieldsMeta = $dbi->getFieldsMeta($result);
$columns = [];
foreach ($result->getFieldNames() as $column) {
$columns[] = stripslashes($column);
@ -487,6 +491,8 @@ class ExportXml extends ExportPlugin
// the XML structure
if (! isset($record[$i])) {
$record[$i] = 'NULL';
} elseif ($fieldsMeta[$i]->isMappedTypeGeometry || $fieldsMeta[$i]->isBinary) {
$record[$i] = '0x' . bin2hex($record[$i]);
}
$buffer .= ' <column name="'