Merge pull request #17863 from kamil-tekiela/Fix-import/export-escaping
Fix import/export escaping
This commit is contained in:
commit
b3aaeded6c
@ -150,10 +150,9 @@ final class ImportController extends AbstractController
|
||||
// apply values for parameters
|
||||
if (! empty($_POST['parameterized']) && ! empty($_POST['parameters']) && is_array($_POST['parameters'])) {
|
||||
$parameters = $_POST['parameters'];
|
||||
foreach ($parameters as $parameter => $replacement) {
|
||||
$replacementValue = $this->dbi->escapeString($replacement);
|
||||
foreach ($parameters as $parameter => $replacementValue) {
|
||||
if (! is_numeric($replacementValue)) {
|
||||
$replacementValue = '\'' . $replacementValue . '\'';
|
||||
$replacementValue = '\'' . $this->dbi->escapeString($replacementValue) . '\'';
|
||||
}
|
||||
|
||||
$quoted = preg_quote($parameter, '/');
|
||||
|
||||
@ -2403,23 +2403,20 @@ class ExportSql extends ExportPlugin
|
||||
}
|
||||
} elseif ($fieldsMeta[$j]->isMappedTypeBit) {
|
||||
// detection of 'bit' works only on mysqli extension
|
||||
$values[] = "b'" . $dbi->escapeString(
|
||||
Util::printableBitValue(
|
||||
(int) $row[$j],
|
||||
(int) $fieldsMeta[$j]->length
|
||||
)
|
||||
)
|
||||
. "'";
|
||||
$values[] = "b'" . Util::printableBitValue(
|
||||
(int) $row[$j],
|
||||
(int) $fieldsMeta[$j]->length
|
||||
) . "'";
|
||||
} elseif ($fieldsMeta[$j]->isMappedTypeGeometry) {
|
||||
// export GIS types as hex
|
||||
$values[] = '0x' . bin2hex($row[$j]);
|
||||
} elseif (! empty($GLOBALS['exporting_metadata']) && $row[$j] === '@LAST_PAGE') {
|
||||
$values[] = '@LAST_PAGE';
|
||||
} elseif ($row[$j] === '') {
|
||||
$values[] = "''";
|
||||
} else {
|
||||
// something else -> treat as a string
|
||||
$values[] = '\''
|
||||
. $dbi->escapeString($row[$j])
|
||||
. '\'';
|
||||
$values[] = '\'' . $dbi->escapeString($row[$j]) . '\'';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1320,6 +1320,11 @@ parameters:
|
||||
count: 1
|
||||
path: libraries/classes/Controllers/Import/ImportController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$replace of function preg_replace expects array\\|string, float\\|int\\|string\\|string given\\.$#"
|
||||
count: 1
|
||||
path: libraries/classes/Controllers/Import/ImportController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$size of method PhpMyAdmin\\\\Import\\:\\:getNextChunk\\(\\) expects int, float\\|int given\\.$#"
|
||||
count: 1
|
||||
|
||||
@ -2206,7 +2206,7 @@
|
||||
<code>$import_type</code>
|
||||
<code>$local_import_file</code>
|
||||
<code>$parameter</code>
|
||||
<code>$replacement</code>
|
||||
<code>$replacementValue</code>
|
||||
<code>$skip < $read_limit ? $skip : $read_limit</code>
|
||||
</PossiblyInvalidArgument>
|
||||
<PossiblyInvalidCast occurrences="7">
|
||||
@ -2216,7 +2216,7 @@
|
||||
<code>$_POST['sql_query']</code>
|
||||
<code>$format</code>
|
||||
<code>$local_import_file</code>
|
||||
<code>$replacement</code>
|
||||
<code>$replacementValue</code>
|
||||
</PossiblyInvalidCast>
|
||||
<PossiblyInvalidOperand occurrences="3">
|
||||
<code>$charset_of_file</code>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user