Je gebruikt de bindingsfunctie van PDO niet helemaal goed. Je zou zoiets als het volgende moeten doen:
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
));
}
Eerst moet u de hele tekenreeks die moet worden gebonden in de sleutel van de bindingsarray plaatsen. Dus je zet ':id'
in plaats van 'id'
. Ook plaatste u de variabelen rechtstreeks in de query in het geval van $table
en $value
, maar dan proberen ze aan elkaar te binden, wat geen zin heeft.
Bewerken:tabellen en kolomnamen kunnen niet worden gebonden met PDO.