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

Các phương pháp hay nhất cho cờ bit trong PHP

Trong mô hình của bạn , đối tượng có 8 thuộc tính boolean. Điều đó ngụ ý 8 cột boolean (TINYINT cho MySQL) trong bảng cơ sở dữ liệu của bạn và 8 phương thức getter / setter trong đối tượng của bạn. Đơn giản và thông thường.

Suy nghĩ lại cách tiếp cận hiện tại của bạn. Hãy tưởng tượng chàng trai tiếp theo phải duy trì điều này sẽ nói gì.

CREATE TABLE mytable (myfield BIT(8));

Được rồi, có vẻ như chúng ta sắp có một số dữ liệu nhị phân ở đây.

INSERT INTO mytable VALUES (b'00101000');

Chờ đã, ai đó hãy cho tôi biết lại từng số 1 và số 0 đó là viết tắt của gì.

SELECT * FROM mytable;
+------------+
| mybitfield |
+------------+
| (          | 
+------------+

Cái gì?

SELECT * FROM mytable WHERE myfield & b'00101000' = b'00100000';

WTF !? WTF !?

tự đâm vào mặt mình

- trong khi đó, trong một vũ trụ thay thế, nơi các tiên chơi với kỳ lân và các lập trình viên không ghét DBA ... -

SELECT * FROM mytable WHERE field3 = 1 AND field5 = 0;

Hạnh phúc và ánh nắng!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Injection thành công mặc dù PHP Magic Quotes

  2. Cách cài đặt MySQL 8.0 trên CentOS 8 / RHEL 8

  3. Làm cách nào để thay đổi MariaDB thành MySQL trong XAMPP?

  4. Lược đồ cơ sở dữ liệu của Wufoo - Bạn sẽ thiết kế nó như thế nào?

  5. Có cơ chế nào để tắt chèn vào bảng không?