Algunas cosas que deben arreglarse. primero está usando mysql cuando debería usar mysqli o PDO. En segundo lugar, está utilizando datos de publicación sin escapar en absoluto. En tercer lugar, no necesita esta selección y actualización. Puedes hacerlo en una sola declaración.
$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));
Lo que estamos haciendo aquí es crear una declaración preparada con un marcador de posición. Lo hemos nombrado como :article
pero podría haberse dejado como ?
en su lugar.
Luego, cuando se ejecuta la consulta, debe completar los bits faltantes pasando parámetros. Eso es lo que estamos haciendo en el último paso con array(":article"=>$article_id)
Dado que es un parámetro con nombre, usamos una matriz asociativa. Alternativamente, podría haber llamado a ejecutar sin ningún parámetro si hubiera llamado a bindParam primero.