From f04807adbf9a436ef7782073a55babc86b33d4fa Mon Sep 17 00:00:00 2001 From: Greg Bowler Date: Sat, 10 Feb 2024 18:12:05 +0000 Subject: [PATCH] feature: improve error handling of special binding including infiles closes #364 --- src/Query/SqlQuery.php | 4 +++- test/phpunit/Query/SqlQueryTest.php | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Query/SqlQuery.php b/src/Query/SqlQuery.php index 573416b..87ed8f6 100644 --- a/src/Query/SqlQuery.php +++ b/src/Query/SqlQuery.php @@ -123,7 +123,9 @@ public function injectSpecialBindings( } if($type === "field") { - $replacement = "`" . $bindings[$special] . "`"; + $words = explode(" ", $bindings[$special]); + $words[0] = "`" . $words[0] . "`"; + $replacement = implode(" ", $words); } elseif($type === "string") { $replacement = "'" . $bindings[$special] . "'"; diff --git a/test/phpunit/Query/SqlQueryTest.php b/test/phpunit/Query/SqlQueryTest.php index 648741b..f9d3bcd 100644 --- a/test/phpunit/Query/SqlQueryTest.php +++ b/test/phpunit/Query/SqlQueryTest.php @@ -238,7 +238,7 @@ public function testSpecialBindingsNoAscDesc( self::assertStringNotContainsString(":limit", $injectedSql); self::assertStringNotContainsString(":offset", $injectedSql); - self::assertStringContainsString("order by sortColumn", $injectedSql); + self::assertStringContainsString("order by `sortColumn`", $injectedSql); self::assertStringContainsString("limit 100", $injectedSql); self::assertStringContainsString("offset 25", $injectedSql); } @@ -260,7 +260,7 @@ public function testSpecialBindingsAscDesc( "offset" => 25, ]); - self::assertStringContainsString("order by sortColumn desc", $injectedSql); + self::assertStringContainsString("order by `sortColumn` desc", $injectedSql); } /**