Tôi đã thực hiện một số thử nghiệm và thật ngạc nhiên khi tôi đang truy vấn một bảng và truy vấn SELECT * FROM table WHERE email=0
trả về tất cả các hàng từ bảng.mySQL trả về tất cả các hàng khi trường = 0
Bảng này không có giá trị '0' và được điền bằng e-mail thông thường.
Tại sao điều này xảy ra? Điều này có thể dẫn đến các vấn đề bảo mật nghiêm trọng.
Có cách nào để tránh điều này mà không sửa đổi truy vấn không?
Tôi có thiếu gì đó ở đây không?
Cảm ơn.
Bạn nghĩ rằng mysql nên làm việc theo cách này? Tôi nghĩ đây là nơi dễ dàng giới thiệu lỗi. Tôi không hiểu tại sao nó cần phải làm như vậy không làm cho các chuyển đổi có ý nghĩa như chuyển đổi bất kỳ chuỗi thành 0. Tại sao không tốt hơn để chuyển đổi 0 đến '0' - nó sẽ làm cho ý nghĩa hơn nhiều –