【问题标题】:Zend DB MYSQL WrapperZend DB MYSQL 包装器
【发布时间】:2010-06-05 18:08:45
【问题描述】:

全部,

我有一个使用 MVC 风格的 Zend Framework 编写的 PHP 应用程序。我计划使用 Zend_DB 连接到 MySQL 数据库并处理查询。我正在寻找一个包装类,它可以很容易地使用 Zend_DB 类。这个包装类将有一个使用 Zend_DB 连接到 Mysql 数据库的构造函数。它还将有一个方法为每个建立的数据库连接返回一个单例实例。

类似:

$pptDB = PPTDB::getInstance();
$pptDB->setFetchMode(PPTDB::FETCH_OBJ);
$result = $pptDB->fetchRow('SELECT * FROM bugs WHERE bug_id = 2');
echo $result->bug_description;

Where class PPTDB extends Zend_DB

这是可行的吗?如果没有,您将如何在主要应用程序中使用 Zend_DB?

谢谢,

【问题讨论】:

  • Zend_Db_Table_Abstract -> 检查文档。想想你在找什么

标签: php zend-framework zend-db


【解决方案1】:

AFAIK 可以将 Zend_DB 用作独立的(当然,该包中的所有类也应该可用),但是如果您不使用这些模型,那么从 is 中获得的收益很少。如果您只对数据库抽象感兴趣,我推荐 PDO,如果您想要 Zend_DB 包装器,反射可以为您提供一个很好的属性/函数列表,您可以选择是否覆盖。

http://nl2.php.net/reflection

【讨论】:

  • 我在 Zend mvc 中使用模型。事实上,我的数据库连接和所有 sql 查询都将通过模型进行处理。
  • 啊,抱歉,在这种情况下,请继续,在扩展 Zend_DB 时定义自己想要的函数非常容易。我看到的唯一问题是当你想更深入时,因为大多数类都是硬编码的。 (更改包中其他类的一些内部工作,我非常努力地尝试让 Zend_DB 将本地 pdo->fetchobjects 返回到一个类中,而不是玩弄,这根本无法仅通过扩展来完成,而是在需要整个包。成功但现在值得麻烦:P)
【解决方案2】:

您应该使用 Zend_Db::factory() 创建适配器,然后在 Zend_Db_Table_Abstract::setDefaultAdapter() 中使用它。然后你可以使用 Zend_Db_Table::getDefaultAdapter() 或 $table->getAdapter() :)

在任何你想要的地方获取你的适配器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多