Tôi muốn sử dụng Zend_Db mà không có Zend_Framework. Tôi muốn kết hợp Zend_Db cho trang web hiện tại của tôi mà không được thực hiện bằng cách sử dụng Zend Framework. Có thể sử dụng Zend_Db như thế này không? Bạn có thể giới thiệu hướng dẫn hay ví dụ tốt như thế nào để làm điều đó tốt?Zend_Db không có Zend Framework
Trả lời
Ở một mức độ nào đó, điều này phụ thuộc vào khung web bạn đang sử dụng. Nhưng, nói chung, các Zend_Db documentation là khá rõ ràng trong lĩnh vực này.
Tạo một cá thể bộ điều hợp trong bootstrap của bạn. Như một ví dụ:
$db = Zend_Db::factory('Pdo_Mysql', array(
'host' => '127.0.0.1',
'username' => 'webuser',
'password' => 'xxxxxxxx',
'dbname' => 'test'
));
Nếu bạn có kế hoạch để sử dụng Zend_Db_Table
, sau đó bạn có thể làm cho này adapter mặc định:
Zend_Db_Table::setDefaultAdapter($db);
Trong mọi trường hợp, nó rất hữu ích để có bộ chuyển đổi này lưu một nơi mà bạn có thể truy cập nó. Ví dụ:
Zend_Registry::set('db', $db);
Sau đó trong mã hạ lưu của bạn, sử dụng bộ chuyển đổi này để tạo các truy vấn cho select()
, insert()
, update()
, delete()
, vv:
$db = Zend_Registry::get('db');
$select = $db->select()
->from('posts')
->where('cat_id = ?', $catId)
->order('date_posted DESC')
->limit(5);
$rows = $db->fetchAll($select);
Hope this helps. Chúc mừng!
Sử dụng Zend_Db thậm chí còn thích hợp hơn (IMHO) so với sử dụng PDO thô. Chỉ cần tạo đối tượng $ db và sau đó tạo câu lệnh SQL bằng cách sử dụng lớp Zend_Db_Select và chuyển câu lệnh SQL $ select tới phương thức fetch * (fetchRow, fetchAll ...).
Đối với Zend Framework 2. *, tạo ra các bộ chuyển đổi sẽ là:
$db = new \Zend\Db\Adapter\Adapter([
'driver' => 'Pdo_Mysql',
'host' => '127.0.0.1',
'username' => 'webuser',
'password' => 'xxxxxx',
'database' => 'test',
]);
Để tạo chọn:
$sql = new \Zend\Db\Sql\Sql($db);
$select = $sql->select()
->from('posts')
->where(array('cat_id' => $catId))
->order('date_posted DESC')
->limit(5);
$statement = $sql->prepareStatementForSqlObject($select);
$results = $statement->execute();
Hoặc, nếu bạn muốn để có được SQL tinh khiết từ $ chọn:
$selectSql = $sql->getSqlStringForSqlObject($select);
Docs có thể hữu ích. Nó thậm chí có thể đơn giản hơn nếu sử dụng TableGateway.
- 1. Có đáng sử dụng Doctrine 2 với Zend Framework không?
- 2. Zend Framework 2 cho Zend Framework Newbie
- 3. Zend Framework có xứng đáng không?
- 4. Zend Framework nhiều cơ sở dữ liệu
- 5. Zend Framework URL HTTPS
- 6. Zend Framework fetchAll
- 7. Zend Framework 2 autoloading
- 8. Zend Framework Nested Checkboxes
- 9. Zend Framework Checkbox Decorators
- 10. zend framework "$ this"
- 11. Zend Framework 2 LDAP
- 12. OAuth trong Zend Framework 2
- 13. Cách trích dẫn tên cột bằng Zend_Db?
- 14. Mẫu Zend Framework với jquery
- 15. Zend Framework 2: sql subquery
- 16. Eclipse Zend PDT ẩn todo/tasks/warnings từ zend-framework
- 17. Không thể chạy Zend Framework 2 trên máy chủ - Class 'Zend \ Mvc \ Application' không tìm thấy
- 18. Tại sao tôi nên sử dụng Doctrine trên Zend_Db?
- 19. Zend Framework 2 phpunit kiểm tra bảng có tham gia
- 20. CMS được xây dựng trên Zend Framework
- 21. Zend Framework - Đặt No Layout cho Controller
- 22. Cột Cập nhật Zend Framework MySQL
- 23. Cách Zend Framework với Propel ORM
- 24. Zend Framework TDG vs Học thuyết
- 25. Zend Framework 2 Navigation Sub-Sub Menu
- 26. Zend Framework 2 Tìm kiếm Lucene?
- 27. Disable notInArray Validator Zend Framework 2
- 28. Zend Framework 2 - Thêm biểu mẫu lớp
- 29. Zend Framework Twitter OAuth + Mã thông báo
- 30. Zend Framework 2 Part Route Assembly
Câu trả lời toàn diện tốt ... –
Cảm ơn bạn. Tôi sẽ thử cái này. – user594791