Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Declaração preparada PDO Dentro de uma classe


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.