Nie używasz funkcji wiązań w PDO całkiem dobrze. Powinieneś zrobić coś takiego:
public function update($table, $key, $value, $id) {
$stmt = $this->conn->prepare(
"UPDATE $table SET $key = :value WHERE id = :id"
);
return $stmt->execute(array(
':value' => $value,
':id' => $id
));
}
Najpierw musisz umieścić cały ciąg, który ma być powiązany z kluczem tablicy wiążącej. Więc wstawiasz ':id'
zamiast 'id'
. Również umieszczałeś zmienne bezpośrednio w zapytaniu w przypadku $table
i $value
, ale potem próbujemy je ze sobą powiązać, co nie ma sensu.
Edycja:nazwy tabel i kolumn nie mogą być powiązane za pomocą PDO.