Pár věcí, které je potřeba opravit. nejprve používáte mysql, když byste měli používat mysqli nebo PDO. Za druhé, používáte postová data, aniž byste museli uniknout. Za třetí, nepotřebujete tento výběr a aktualizaci. Můžete to udělat jediným příkazem.
$query = "UPDATE tinyblog SET views = views + 1 WHERE id = (SELECT id FROM tinyblog where id=:article)"
$db = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
$stmt = $db->prepare($query);
$stmt->execute(array(":article"=>$article_id));
To, co zde děláme, je vytvoření připraveného výpisu s jedním zástupným symbolem. Pojmenovali jsme to jako :article
ale mohlo to být ponecháno jako ?
místo toho.
Poté, když je dotaz proveden, musíte doplnit chybějící bity předáním parametrů. To je to, co děláme v posledním kroku s array(":article"=>$article_id)
Protože se jedná o pojmenovaný parametr, používáme asociativní pole. Alternativně byste mohli zavolat provést bez jakýchkoli parametrů, pokud byste zavolali bindParam první.