Ein paar Dinge, die behoben werden müssen. Zuerst verwenden Sie mysql, wenn Sie mysqli oder PDO verwenden sollten. Zweitens verwenden Sie Postdaten ohne jegliches Entkommen. Drittens brauchen Sie dieses Auswählen und Aktualisieren nicht. Sie können dies in einer einzigen Anweisung tun.
$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));
Wir erstellen hier eine vorbereitete Anweisung mit einem Platzhalter. Wir haben es als :article
benannt aber es hätte auch ?
bleiben können stattdessen.
Wenn die Abfrage dann ausgeführt wird, müssen Sie die fehlenden Bits füllen, indem Sie Parameter übergeben. Das machen wir im letzten Schritt mit array(":article"=>$article_id)
Da es sich um einen benannten Parameter handelt, verwenden wir ein assoziatives Array. Alternativ hätten Sie execute ohne Parameter aufrufen können, wenn Sie bindParam aufgerufen hätten zuerst.