MCP-Booleans typisiert an PostgreSQL binden

This commit is contained in:
gitea_admin committed 2026-09-20 21:00:26 +02:00
1 parent 13420b0e01
commit c2913c1026
1 file changed
+13 -2
+13 -2
View File
@@ -706,6 +706,17 @@ function market_management_write_fields(array $input, array $definitions): array
return [$fields, $params]; 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 function market_management_create_occurrence(PDO $pdo, array $input): array
{ {
$newMunicipalityName = null; $newMunicipalityName = null;
@@ -764,7 +775,7 @@ function market_management_create_occurrence(PDO $pdo, array $input): array
VALUES (' . implode(', ', $values) . ') VALUES (' . implode(', ', $values) . ')
RETURNING *' RETURNING *'
); );
$stmt->execute($params); market_management_execute_typed($stmt, $params);
$occurrence = (array) $stmt->fetch(); $occurrence = (array) $stmt->fetch();
foreach ($days as $day) { foreach ($days as $day) {
if (!is_array($day)) { if (!is_array($day)) {
@@ -1011,7 +1022,7 @@ function market_management_update_occurrence(PDO $pdo, int $occurrenceId, array
$stmt = $pdo->prepare( $stmt = $pdo->prepare(
'UPDATE market_occurrence SET ' . implode(', ', $fields) . ' WHERE id = :id RETURNING *' 'UPDATE market_occurrence SET ' . implode(', ', $fields) . ' WHERE id = :id RETURNING *'
); );
$stmt->execute($params); market_management_execute_typed($stmt, $params);
$occurrence = $stmt->fetch(); $occurrence = $stmt->fetch();
if (!is_array($occurrence)) { if (!is_array($occurrence)) {
throw new RuntimeException('Marktdurchführung nicht gefunden.'); throw new RuntimeException('Marktdurchführung nicht gefunden.');