Você não está usando o recurso de ligações do PDO corretamente. Você deve fazer algo como o seguinte:
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
));
}
Primeiro, você precisa colocar a string inteira a ser vinculada à chave do array de vinculação. Então você coloca
':id'
em vez de 'id'
. Além disso, você estava colocando as variáveis diretamente na consulta no caso de $table
e $value
, mas tentando vinculá-los um ao outro, o que não faz sentido. Edit:tabelas e nomes de colunas não podem ser vinculados usando PDO.