sql >> Base de Datos >  >> RDS >> Mysql

PDO Declaración preparada Dentro de una clase

No está utilizando la función de enlaces de PDO del todo bien. Deberías hacer algo como lo siguiente:

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
    ));
}

Primero, debe colocar la cadena completa que se vinculará en la clave de la matriz de vinculación. Así que pones ':id' en lugar de 'id' . También estaba poniendo las variables directamente en la consulta en el caso de $table y $value , pero luego intenta vincularlos entre sí, lo que no tiene sentido.

Editar:las tablas y los nombres de las columnas no se pueden vincular mediante PDO.