Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [PHP] Fluent builder với __call

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

    • Định dạng đầu vào:

      Mỗi dòng <method>:<value>; dòng BUILD kết thúc.

    • Ràng buộc đầu vào:

      select, from xuất hiện <=1 lần; where xuất hiện >=0 lần; orderBy <=1.

    • Định dạng đầu ra:

      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:

    Ghép đầy đủ.

    Đang tải editor...