Няколко неща, които трябва да се поправят. първо използвате mysql, когато трябва да използвате mysqli или PDO. Второ, вие използвате данни за публикации, без изобщо да избягвате. Трето, нямате нужда от този избор и актуализиране. Можете да го направите с едно изявление.
$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));
Това, което правим тук, е да създадем подготвено изявление с едно място. Нарекли сме го като :article
но можеше да бъде оставен като ?
вместо това.
След това, когато заявката се изпълни, трябва да попълните липсващите битове, като подадете параметри. Това правим в последната стъпка с array(":article"=>$article_id)
Тъй като това е именуван параметър, ние използваме асоциативен масив. Като алтернатива бихте могли да извикате execute без никакви параметри, ако бяхте извикали bindParam първо.