【问题标题】:PHP 5: What DAL are you using? [closed]PHP 5:您使用的是什么 DAL? [关闭]
【发布时间】:2011-02-22 06:26:23
【问题描述】:

我是 PHP 新手,最近开始学习 Zend 框架。你用的是什么DAL?你认为 Zend_Db_* 能做到吗?我主要需要它用于 MySql 数据库。它是否有任何限制,我可以在大项目中毫无问题地使用它,因为我不想走错路。

10 倍

【问题讨论】:

    标签: php mysql zend-framework data-access-layer


    【解决方案1】:

    Zend_Db 完美运行。如果您仍然想要,您可以将 SQL 直接发送到数据库以防出现问题。

    Zend_Db 建立在 PDO 之上,因此在参数注入方面非常安全(考虑到他们自己使用它),但是,如果您不信任它们,您可以查看源代码(乐趣开源!)

    【讨论】:

      【解决方案2】:

      我们去年在两个项目中使用了Doctrine 和 MySql。我认为它与 PHP 上的 O/R 映射器一样好。 DQL 实际上是经过深思熟虑的,您很少(如果有的话)需要接触数据库。

      虽然这两个项目并不“大”,但它们确实会持续数周的高流量突发,包括大量的数据库访问。教义从来不是问题。

      与 ZendDB 相比,Doctrine——作为一个独立的项目——得到了更好的关注,它自己的博客和培训课程等。有了 Zend,它总感觉像是一个子项目。

      【讨论】:

        【解决方案3】:

        我使用Zend_Db。它在 PDO 之上工作。我有时会将它与其他一些框架、CI、Kohana 等一起使用。

        【讨论】:

          【解决方案4】:

          我通常保持简单,只使用 mysqli。我通过检查输入仅包含小写字母/是否在我需要构造它们的白名单参数数组中来保证查询的安全。

          【讨论】:

          • 请不要重新发明轮子,没有必要这样做。成千上万人使用并由优秀工程师开发的软件产品总是比您的自制解决方案更好:)
          • @Snake,“几乎总是。”你永远不知道...
          • 我的解决方案不是很复杂 - 我只运行非常简单的查询,例如 SELECT field1,field2 FROM table WHERE category = $variable_from_user。
          • 其他“公共”解决方案并不总是更好。如果您知道自己在做什么,它们是为大众设计的,通常比本土解决方案慢。
          • 没错。我使用的设计极大地限制了用户输入(即只有两种或三种可能性),而“公共”解决方案正在解决一个更大的问题。
          猜你喜欢
          • 2011-05-03
          • 1970-01-01
          • 2010-09-30
          • 1970-01-01
          • 2010-09-06
          • 2017-01-24
          • 2011-10-06
          • 2011-11-14
          • 1970-01-01
          相关资源
          最近更新 更多