From 606d104f4764e66a50285405edad0503f7157035 Mon Sep 17 00:00:00 2001 From: filippo.bertilotti <filippobertilotti@gmail.com> Date: Fri, 24 May 2024 10:30:29 +0200 Subject: [PATCH] finendo la funzione update che permette di modificare i dati messi nel form edit e updatarli nel database (parte 137) --- src/Framework/Model.php | 34 ++++++++++++++++++++++++++++++++-- 1 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/Framework/Model.php b/src/Framework/Model.php index 06d66bb..8f04768 100644 --- a/src/Framework/Model.php +++ b/src/Framework/Model.php @@ -20,7 +20,37 @@ return false; } - return true; + $sql = "UPDATE {$this->getTable()}"; + + unset($data["id"]); + + $assignments = array_keys($data); + + array_walk($assignments, function (&$value) { + $value = "$value = ?"; + }); + + $sql .= " SET " . implode(", ", $assignments); + $sql .= " WHERE id = ?"; + + $conn = $this->database->getConnection(); + $stmt = $conn->prepare($sql); + + $i = 1; + foreach ($data as $value) { + $type = match(gettype($value)) { + "boolean" => PDO::PARAM_BOOL, + "integer"=> PDO::PARAM_INT, + "NULL"=> PDO::PARAM_NULL, + default => PDO::PARAM_STR + }; + + + $stmt->bindValue($i++, $value, $type); + } + + $stmt->bindValue($i, $id, PDO::PARAM_INT); + return $stmt->execute(); } @@ -86,7 +116,7 @@ }; - $stmt->bindValue($i++, $value, PDO::PARAM_STR); + $stmt->bindValue($i++, $value, $type); } -- Gitblit v1.8.0