From bf45b50122abf8b707d957478d54d5d417b344e8 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sat, 12 Apr 2025 23:37:14 +0200 Subject: [PATCH 1/2] Translated using Weblate (Hebrew) Currently translated at 46.2% (1584 of 3428 strings) [ci skip] Translation: phpMyAdmin/5.2 Translate-URL: https://hosted.weblate.org/projects/phpmyadmin/5-2/he/ Signed-off-by: Yaron Shahrabani --- po/he.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/he.po b/po/he.po index 5b2a0b1138..07d7c4a505 100644 --- a/po/he.po +++ b/po/he.po @@ -4,7 +4,7 @@ msgstr "" "Project-Id-Version: phpMyAdmin 5.2.3-dev\n" "Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" "POT-Creation-Date: 2025-02-27 14:25-0300\n" -"PO-Revision-Date: 2024-10-13 04:15+0000\n" +"PO-Revision-Date: 2025-04-13 22:07+0000\n" "Last-Translator: Yaron Shahrabani \n" "Language-Team: Hebrew \n" @@ -13,7 +13,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Weblate 5.8-dev\n" +"X-Generator: Weblate 5.11-dev\n" #: libraries/advisory_rules_generic.php:9 msgid "Uptime below one day" @@ -21,7 +21,7 @@ msgstr "זמן פעילות מתחת ליום אחד" #: libraries/advisory_rules_generic.php:12 msgid "Uptime is less than 1 day, performance tuning may not be accurate." -msgstr "" +msgstr "זמן הפעילות הוא פחות מיום אחד, כוונון הביצועים עלול להיות לא מדויק." #: libraries/advisory_rules_generic.php:14 msgid "" From 92efecc7f66f6bde348020743f559472cda72083 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Mon, 21 Apr 2025 22:37:38 -0300 Subject: [PATCH 2/2] Add SQL parse error message when simulating DML MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes https://github.com/phpmyadmin/phpmyadmin/issues/18903 Signed-off-by: Maurício Meneghini Fauth --- .../Import/SimulateDmlController.php | 6 +++++ .../Import/SimulateDmlControllerTest.php | 23 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/libraries/classes/Controllers/Import/SimulateDmlController.php b/libraries/classes/Controllers/Import/SimulateDmlController.php index cf3637c1d6..79aec51ab2 100644 --- a/libraries/classes/Controllers/Import/SimulateDmlController.php +++ b/libraries/classes/Controllers/Import/SimulateDmlController.php @@ -81,6 +81,12 @@ final class SimulateDmlController extends AbstractController private function process(Parser $parser): void { + if ($parser->errors !== []) { + $this->error = $parser->errors[0]->getMessage(); + + return; + } + foreach ($parser->statements as $statement) { if ( ! $statement instanceof UpdateStatement && ! $statement instanceof DeleteStatement diff --git a/test/classes/Controllers/Import/SimulateDmlControllerTest.php b/test/classes/Controllers/Import/SimulateDmlControllerTest.php index cdeba0193c..024504c409 100644 --- a/test/classes/Controllers/Import/SimulateDmlControllerTest.php +++ b/test/classes/Controllers/Import/SimulateDmlControllerTest.php @@ -280,4 +280,27 @@ class SimulateDmlControllerTest extends AbstractTestCase ], ]; } + + public function testStatementWithParsingError(): void + { + $_POST['sql_delimiter'] = ';'; + $GLOBALS['sql_query'] = 'UPDATE actor SET'; + + $responseRenderer = new ResponseRenderer(); + $controller = new SimulateDmlController( + $responseRenderer, + new Template(), + new SimulateDml($this->createDatabaseInterface()) + ); + $controller(); + + $expectedMessage = <<<'HTML' + + +HTML; + + self::assertSame(['message' => $expectedMessage, 'sql_data' => false], $responseRenderer->getJSONResult()); + } }