Bạn đang sử dụng trường Bit (1) để biểu thị giá trị boolean (TRUE
/ FALSE
).
Máy khách cơ sở dữ liệu ánh xạ các trường bit (có thể lớn hơn một bit) vào các chuỗi trong đó một ký tự đại diện cho một Octet.
Bạn không chỉ có thể sử dụng trường Bit (1) của mình dưới dạng chuỗi PHP thông qua ord()
hàm vì nó xử lý chuỗi như một Octet duy nhất:
if (ord($Site_Approved)) {
...
}
Bạn không thể sử dụng $Site_Approved
trực tiếp vì nó là một chuỗi và nó sẽ luôn đánh giá là TRUE
bất kể bit đầu tiên có được đặt hay không.
Ngoài ra, bạn có thể truyền giá trị cơ sở dữ liệu trong truy vấn SQL đã có thành số thập phân, đây có thể là giá trị bạn đang tìm kiếm:
s.Site_Approved+0 AS Site_Approved
Các giá trị thập phân trong phạm vi từ 0 đến 1 hoạt động rất giống với boolean của PHP (chúng không chia sẻ kiểu, phần còn lại giống nhau).