MCP-Booleans typisiert an PostgreSQL binden
This commit is contained in:
1 parent
13420b0e01
commit
c2913c1026
1 file changed
+13
-2
@@ -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.');
|
||||||
|
|||||||
Reference in new issue
Block a user