Share Tuỳ biến truy vấn SQL bằng SQL Expression trong Zend Db

filiallion

Administrator
Staff member
Administrator
Messages
478
Points
10
Language
Tiếng Việt
Zend Framework có thành phần Zend Db rất mạnh mẽ, cho phép các bạn tương tác với cơ sở dữ liệu một cách linh hoạt. Nếu các bạn đã tìm hiểu, sử dụng qua Table Gateway thì cũng sẽ nhận thấy thành phần này hỗ trợ rất tốt để tương tác với cơ sở dữ liệu. Tuy nhiên, Table Gateway chỉ hỗ trợ các truy vấn dữ liệu không quá phức tạp, nếu các bạn gặp phải các truy vấn dữ liệu phức tạp thì thành phần SQL Expression mới là công cụ hữu ích.

Bản thân SQL Expression không thể hỗ trợ việc truy vấn dữ liệu như Table Gateway, mà nó là một lớp thư viện hỗ trợ cho Table Gateway thực hiện các truy vấn phức tạp. Các bạn có thể tuỳ chỉnh bất kỳ câu truy vấn SQL nào các bạn muốn với SQL Expression nhưng các bạn cần lưu ý là với các truy vấn được thực hiện bởi SQL Expression thì các bạn phải tự lọc dữ liệu chứ SQL Expression không tự động thực hiện giúp các bạn.

Để sử dụng SQL Expression, các bạn cần khai báo như sau:
PHP:
use Zend\Db\Sql\Expression;
Các bạn có thể tham khảo ví dụ sau:
PHP:
//Khởi tạo đối tượng table gateway
$tableGateway = new TableGateway('tbl_user', $adapter);

//Lấy dữ liệu
$result = $tableGateway->select(function($select) {
    $select->columns([
        'count' => new Expression('COUNT(1)')
    ]);
});
Các bạn có thể tìm hiểu thêm về SQL Expression tại địa chỉ https://docs.zendframework.com/zend-db/sql.
 
Top