Quelques petites choses qui doivent être corrigées. vous utilisez d'abord mysql alors que vous devriez utiliser mysqli ou PDO. Deuxièmement, vous utilisez des données de publication sans aucune fuite. Troisièmement, vous n'avez pas besoin de cette sélection et de cette mise à jour. Vous pouvez le faire en une seule instruction.
$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));
Ce que nous faisons ici, c'est créer une déclaration préparée avec un espace réservé. Nous l'avons nommé :article
mais il aurait pu être laissé comme ?
à la place.
Ensuite, lorsque la requête est exécutée, vous devez remplir les bits manquants en transmettant des paramètres. C'est ce que nous faisons dans la dernière étape avec array(":article"=>$article_id)
Puisqu'il s'agit d'un paramètre nommé, nous utilisons un tableau associatif. Sinon, vous auriez pu appeler execute sans aucun paramètre si vous aviez appelé bindParam d'abord.