Cài class QueryBuilder mô phỏng truy vấn SQL theo phong cách fluent. Dùng __call xử lý các phương thức where(string $cond), select(string $cols), from(string $table), orderBy(string $col) — mỗi lần ghi vào mảng nội bộ. Phương thức build(): string trả về câu SQL ghép theo thứ tự SELECT <cols> FROM <table> WHERE <cond1> AND <cond2> ... ORDER BY <col> (chỉ đưa phần nào đã set). Mỗi phương thức trả về $this để chain. Đọc dãy lệnh, mỗi dòng dạng <method>:<value>, dòng BUILD kết thúc và in kết quả.
Mỗi dòng <method>:<value>; dòng BUILD kết thúc.
select, from xuất hiện <=1 lần; where xuất hiện >=0 lần; orderBy <=1.
Câu SQL.
Ví dụ:
Đầu vào:
select:id, name
from:users
where:age > 18
orderBy:name
BUILD
Đầu ra:
SELECT id, name FROM users WHERE age > 18 ORDER BY name
Giải thích:
Đang tải editor...