Bởi vì MySQL đã thực thi truy vấn của bạn mà không có bất kỳ lỗi nào. Chỉ vì bạn đã viết sai truy vấn, điều này không có nghĩa là truy vấn sai đến mức MySQL sẽ không chấp nhận nó.
Bất cứ khi nào bạn tạo truy vấn SQL theo chương trình, hãy xác minh (bằng cách gỡ lỗi hoặc thậm chí kiểm tra đơn vị tốt hơn), rằng truy vấn đã được tạo phù hợp với những gì bạn muốn làm.
Nếu bạn muốn có một ngoại lệ mỗi khi xảy ra lỗi, hãy kích hoạt điều đó:
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);