gpt4 book ai didi

php - Zend 框架 : Proper way to interact with database?

转载 作者:IT王子 更新时间:2023-10-29 00:31:24 25 4
gpt4 key购买 nike

我对 Zend 框架和 MVC 还很陌生,我对 Zend_DB 以及与数据库交互的正确方式有点困惑。

我正在使用 PDO MySQL 适配器并创建了一些类来扩展抽象类:

class Users extends Zend_Db_Table_Abstract {
protected $_name = 'users';
protected $_primary = 'user_id';
protected $_rowClass = 'User';

public function getUserbyID($id) { /* code */ }
// More code here
}
class User extends Zend_Db_Table_Row_Abstract {
// Code here
}
class Widgets extends Zend_Db_Table_Abstract {
protected $_name = 'widgets';
protected $_rowClass = 'Widget';

public function getWidgetsfromUser($userid) { /* code */ }
// More code here
}
class User extends Zend_Db_Table_Row_Abstract {
public function doSomethingWithWidget() { /* code */ }
// More code here
}

似乎有很多我总能找到的方法来访问数据库(fetchAll()、find()、fetchAll() 通过适配器、insert()、createRow() 和 save()、select() 对象)我自己会回到文档中找出我应该做什么。

SO 教会了我准备好的语句是要走的路,我一直在尝试使用行集和行(我应该这样做吗?),但我仍然对 什么是最好的交互方式感到困惑使用数据库?

(为这个非常开放式的问题道歉)

最佳答案

一般来说,人们更喜欢通过 Table 和 Row 对象来访问数据库,以符合他们面向对象编程的习惯。

如果您需要编写代码来转换或验证查询输入或输出,OO 方法非常有用。您还可以在 Table 或 Row 类中编写自定义方法来封装经常需要的查询。

但是面向对象的接口(interface)被简化了,无法执行您可能需要执行的所有类型的数据库操作。因此,当您需要更好地控制 SQL 时,您可以更深入地研究并针对 Zend_Db_Adapter 方法(如 query()fetchAll())运行 SQL 查询。

这对于面向对象的数据库接口(interface)非常常见。一个可以复制每个 SQL 特性的 OO 层会非常复杂。因此,为了妥协,OO 层通常会尝试提供简单的方法来完成最常见的任务,同时让您能够在必要时潜入幕后。

这是对您非常笼统的问题的非常笼统的回答。

关于php - Zend 框架 : Proper way to interact with database?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/445399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com