Een paar dingen die gerepareerd moeten worden. eerst gebruikt u mysql terwijl u mysqli of PDO zou moeten gebruiken. Ten tweede gebruikt u postgegevens zonder enige ontsnapping. Ten derde heb je deze selectie en update niet nodig. U kunt het in een enkele verklaring doen.
$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));
Wat we hier doen, is een voorbereide verklaring maken met één plaatshouder. We hebben het genoemd als :article
maar het had kunnen worden achtergelaten als ?
in plaats daarvan.
Wanneer de query wordt uitgevoerd, moet u de ontbrekende bits invullen door parameters door te geven. Dat doen we in de laatste stap met array(":article"=>$article_id)
Omdat het een benoemde parameter is, gebruiken we een associatieve array. Als alternatief had je execute kunnen aanroepen zonder parameters als je bindParam had aangeroepen eerst.