W poniższym zapytaniu do bazy MSQLi używam PDO. O ile w poniższym zapytaniu nie ma problemu i wszystko działa jak należy, to takie proste zapytanie "query" jest potencjalnie niebezpieczne.
public function addVote($type,$artId){ $vote = $this->db->query("UPDATE votes SET $type=$type+1 WHERE art_id=$artId"); }
Chciałem użyć bindowania danych jak poniżej ale niestety PDO sypie błędem.
public function addVote($type,$artId){ $vote = $this->db->prepare("UPDATE votes SET :col=:type+1 WHERE art_id=:artId"); $vote->bindValue(':type', $type, PDO::PARAM_STR); $vote->bindValue(':col', $type, PDO::PARAM_STR); $vote->bindValue(':artId', $artId, PDO::PARAM_INT); $vote->execute(); }
Czy ktoś wie może jak napisać update z inkrementacją?
A po drugie. Może nie ma tu sensu stosować bindowania jeśli obie te zmienne nie pochodzą z formularza tylko z atrybutów HTML?
Dziękuję