public function update(array $data, int $id): void
{
$this->checkFields($data);
$params = [];
$set = "";
foreach($data as $key => $value)
{
$set .= ($set ? "," : "") . "`$key` = ?";
$params[] = $value;
}
$params[] = $id;
$sql = "UPDATE `$this->table` SET $set WHERE `$this->primary`=?";
$this->db->prepare($sql)->execute($params);
}
public function delete($id)
{
$sql = "DELETE FROM `$this->table` WHERE `$this->primary`=?";
$this->db->prepare($sql)->execute([$id]);
}
У вас может быть только одна запись, или много?
Если только одна, то тогда цикл не нужен.
Если много, то почему вы тогда все время говорите про одну?
И вы все время пишете противоречащие друг другу вещи. Так вам обработать или написать "есть"?
Чтобы обработать, никакого "есть" не надо.