From de05dcffa184c12b45bc29ab6dea76a52bc44de3 Mon Sep 17 00:00:00 2001 From: Severin J Date: Wed, 2 Apr 2025 16:28:08 +0200 Subject: [PATCH] fix: Translate only type-safe null to sql null When using equals / notEquals method with an empty string it keeps the empty string instead of replacing with null --- src/Builder/Syntax/PlaceholderWriter.php | 6 ++++-- tests/Builder/Syntax/PlaceholderWriterTest.php | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Builder/Syntax/PlaceholderWriter.php b/src/Builder/Syntax/PlaceholderWriter.php index de78f09..b3a77a1 100644 --- a/src/Builder/Syntax/PlaceholderWriter.php +++ b/src/Builder/Syntax/PlaceholderWriter.php @@ -80,8 +80,10 @@ protected function setValidSqlValue($value) */ protected function writeNullSqlString($value) { - if (\is_null($value) || (\is_string($value) && empty($value))) { + if (\is_null($value)) { $value = $this->writeNull(); + } elseif ((\is_string($value) && empty($value))) { + $value = ''; } return $value; @@ -92,7 +94,7 @@ protected function writeNullSqlString($value) */ protected function writeNull() { - return 'NULL'; + return NULL; } /** diff --git a/tests/Builder/Syntax/PlaceholderWriterTest.php b/tests/Builder/Syntax/PlaceholderWriterTest.php index f9d6a6d..a29c643 100644 --- a/tests/Builder/Syntax/PlaceholderWriterTest.php +++ b/tests/Builder/Syntax/PlaceholderWriterTest.php @@ -56,7 +56,7 @@ public function itShouldTranslatePhpNullToSqlNullValue() $this->writer->add(''); $this->writer->add(null); - $this->assertEquals(array(':v1' => 'NULL', ':v2' => 'NULL'), $this->writer->get()); + $this->assertEquals(array(':v1' => '', ':v2' => null), $this->writer->get()); } /**