Support backed enums as a parameter type in the database

This commit is contained in:
Alex Cabal 2024-01-15 00:04:36 -06:00
parent e52e09c959
commit e712cfbfcc

View file

@ -96,10 +96,9 @@ class DbConnection{
if(is_a($parameter, 'DateTime') || is_a($parameter, 'DateTimeImmutable')){ if(is_a($parameter, 'DateTime') || is_a($parameter, 'DateTimeImmutable')){
$parameter = $parameter->format('Y-m-d H:i:s'); $parameter = $parameter->format('Y-m-d H:i:s');
} }
elseif(is_bool($parameter)){
// MySQL strict mode requires 0 or 1 instead of true or false // MySQL strict mode requires 0 or 1 instead of true or false
// Can't use PDO::PARAM_BOOL, it just doesn't work // Can't use PDO::PARAM_BOOL, it just doesn't work
if(is_bool($parameter)){
if($parameter){ if($parameter){
$parameter = 1; $parameter = 1;
} }
@ -107,6 +106,9 @@ class DbConnection{
$parameter = 0; $parameter = 0;
} }
} }
elseif($parameter instanceof BackedEnum){
$parameter = $parameter->value;
}
if(is_int($parameter)){ if(is_int($parameter)){
$handle->bindValue($name, $parameter, PDO::PARAM_INT); $handle->bindValue($name, $parameter, PDO::PARAM_INT);