diff --git a/libraries/classes/Plugins/Export/ExportPhparray.php b/libraries/classes/Plugins/Export/ExportPhparray.php index a244cc6b30..25097c2753 100644 --- a/libraries/classes/Plugins/Export/ExportPhparray.php +++ b/libraries/classes/Plugins/Export/ExportPhparray.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; @@ -17,6 +18,7 @@ use PhpMyAdmin\Util; use PhpMyAdmin\Version; use function __; +use function bin2hex; use function preg_match; use function preg_replace; use function stripslashes; @@ -169,6 +171,8 @@ class ExportPhparray 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 $i => $col_as) { if (! empty($aliases[$db]['tables'][$table]['columns'][$col_as])) { @@ -216,6 +220,10 @@ class ExportPhparray extends ExportPlugin } for ($i = 0; $i < $columns_cnt; $i++) { + if ($record[$i] !== null && ($fieldsMeta[$i]->isMappedTypeGeometry || $fieldsMeta[$i]->isBinary)) { + $record[$i] = '0x' . bin2hex($record[$i]); + } + $buffer .= var_export($columns[$i], true) . ' => ' . var_export($record[$i], true) . ($i + 1 >= $columns_cnt ? '' : ',');