From c2913c1026232a746f20d1230c69ea1e05016103 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathias=20Gla=CC=88ser?= Date: Sun, 20 Sep 2026 21:00:26 +0200 Subject: [PATCH] MCP-Booleans typisiert an PostgreSQL binden --- modules/market_management/service.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/market_management/service.php b/modules/market_management/service.php index c4ef701..cf58284 100644 --- a/modules/market_management/service.php +++ b/modules/market_management/service.php @@ -706,6 +706,17 @@ function market_management_write_fields(array $input, array $definitions): array return [$fields, $params]; } +function market_management_execute_typed(PDOStatement $stmt, array $params): void +{ + foreach ($params as $name => $value) { + $type = is_bool($value) + ? PDO::PARAM_BOOL + : (is_int($value) ? PDO::PARAM_INT : (is_null($value) ? PDO::PARAM_NULL : PDO::PARAM_STR)); + $stmt->bindValue($name, $value, $type); + } + $stmt->execute(); +} + function market_management_create_occurrence(PDO $pdo, array $input): array { $newMunicipalityName = null; @@ -764,7 +775,7 @@ function market_management_create_occurrence(PDO $pdo, array $input): array VALUES (' . implode(', ', $values) . ') RETURNING *' ); - $stmt->execute($params); + market_management_execute_typed($stmt, $params); $occurrence = (array) $stmt->fetch(); foreach ($days as $day) { if (!is_array($day)) { @@ -1011,7 +1022,7 @@ function market_management_update_occurrence(PDO $pdo, int $occurrenceId, array $stmt = $pdo->prepare( 'UPDATE market_occurrence SET ' . implode(', ', $fields) . ' WHERE id = :id RETURNING *' ); - $stmt->execute($params); + market_management_execute_typed($stmt, $params); $occurrence = $stmt->fetch(); if (!is_array($occurrence)) { throw new RuntimeException('Marktdurchführung nicht gefunden.');