Vous n'utilisez pas tout à fait la fonctionnalité de liaisons de PDO. Vous devriez faire quelque chose comme ceci :
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
));
}
Tout d'abord, vous devez mettre la chaîne entière à lier dans la clé du tableau de liaison. Donc tu mets ':id'
plutôt que 'id'
. De plus, vous mettiez les variables directement dans la requête dans le cas de $table
et $value
, mais en essayant ensuite de les lier les uns aux autres, ce qui n'a aucun sens.
Modifier :les noms de tables et de colonnes ne peuvent pas être liés à l'aide de PDO.