Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PHP PDO Bit (1) trả về kiểu dữ liệu sai

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).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để mã PDO này bảo vệ khỏi SQL Injjection?

  2. Tự động xâu chuỗi đối tượng khi chèn vào cột MySQL JSON bằng quỳ

  3. cách viết truy vấn tự tham gia này trong mysql

  4. Làm thế nào để viết Hibernate Criteria cho Truy vấn sql này?

  5. CẬP NHẬT Nguyên tử MySQL trong InnoDB vs MyISAM