Một số điều cần được sửa chữa. đầu tiên bạn đang sử dụng mysql khi bạn nên sử dụng mysqli hoặc PDO. Thứ hai, bạn đang sử dụng dữ liệu bài đăng mà không có bất kỳ thoát nào cả. Thứ ba, bạn không cần chọn và cập nhật này. Bạn có thể làm điều đó trong một câu lệnh duy nhất.
$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));
Những gì chúng tôi đang làm ở đây là tạo một tuyên bố chuẩn bị sẵn với một người giữ chỗ. Chúng tôi đã đặt tên nó là :article
nhưng nó có thể được để dưới dạng ?
thay vào đó.
Sau đó, khi truy vấn được thực hiện, bạn cần điền vào các bit còn thiếu bằng cách chuyển các tham số vào. Đó là những gì chúng ta đang làm trong bước cuối cùng với array(":article"=>$article_id)
Vì nó là một tham số được đặt tên, chúng tôi sử dụng một mảng kết hợp. Ngoài ra, bạn có thể gọi thực thi mà không có bất kỳ tham số nào nếu bạn đã gọi bindParam đầu tiên.