Mysql
 sql >> Base de données >  >> RDS >> Mysql

PDO Instruction préparée A l'intérieur d'une classe

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.