From e712cfbfcc499354d09e84a6307dc3b4c6b9a8c2 Mon Sep 17 00:00:00 2001 From: Alex Cabal Date: Mon, 15 Jan 2024 00:04:36 -0600 Subject: [PATCH] Support backed enums as a parameter type in the database --- lib/DbConnection.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/DbConnection.php b/lib/DbConnection.php index f06c5f33..393dcb99 100644 --- a/lib/DbConnection.php +++ b/lib/DbConnection.php @@ -96,10 +96,9 @@ class DbConnection{ if(is_a($parameter, 'DateTime') || is_a($parameter, 'DateTimeImmutable')){ $parameter = $parameter->format('Y-m-d H:i:s'); } - - // MySQL strict mode requires 0 or 1 instead of true or false - // Can't use PDO::PARAM_BOOL, it just doesn't work - if(is_bool($parameter)){ + elseif(is_bool($parameter)){ + // MySQL strict mode requires 0 or 1 instead of true or false + // Can't use PDO::PARAM_BOOL, it just doesn't work if($parameter){ $parameter = 1; } @@ -107,6 +106,9 @@ class DbConnection{ $parameter = 0; } } + elseif($parameter instanceof BackedEnum){ + $parameter = $parameter->value; + } if(is_int($parameter)){ $handle->bindValue($name, $parameter, PDO::PARAM_INT);