Et par ting, der skal rettes. først bruger du mysql, når du skal bruge mysqli eller PDO. For det andet bruger du postdata uden at undslippe overhovedet. For det tredje behøver du ikke denne valg og opdatering. Du kan gøre det i en enkelt erklæring.
$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));
Det, vi gør her, er at lave en forberedt erklæring med én pladsholder. Vi har navngivet den som :article
men det kunne have været efterladt som ?
i stedet.
Så når forespørgslen er udført, skal du udfylde de manglende bits ved at indsætte parametre. Det er det, vi gør i det sidste trin med array(":article"=>$article_id)
Da det er en navngivet parameter, bruger vi en associativ matrix. Alternativt kunne du have kaldt execute uden nogen parametre, hvis du havde kaldt bindParam først.