最好使用预先创建的类/ api进行数据库交互(例如Pear MDB2或php的PDO)或创建自己的类吗?
我将只使用带有1个数据库的mysql并执行相对简单的SELECT,INSERT,UPDATE,DELETE查询。
答案 0 :(得分:5)
对于小型个人项目,我更喜欢使用我自己的数据库接口类而不是预构建的,但其他人则对预先构建的API发誓。通过创建自己的类,您几乎可以保证重新发明轮子。使用预先构建的API通常只需要您学习如何在该API中发布命令。如果您正在与程序员团队合作,我建议使用记录良好的API并将其用于您的最佳实践和过程。根据我的经验,我觉得团队编程和家庭自制的DB课程混合不好。
我要说的一件事,如果你从未写过这样的课程,我建议这样做是为了获得一些幕后理解的学习机会。我在编写自己的课程时所获得的经验,在调试使用我不熟悉的API的其他程序员完成的工作时,肯定帮了我几次。
[编辑 - 修正了一些非常糟糕的语法]
答案 1 :(得分:1)
我已经完成了两者 - 使用预先创建的类可能最好的可维护性,因为通常很容易切换到不同的数据库后端。但是,我喜欢我自己的数据库类的易用性,所以对于我的个人项目,我通常会自己编写。
除非我愿意支持,否则我不会为自己的外部工作编写自己的工作 - 请记住,如果您自己编写并且客户想要更改数据库,那么您将成为接听电话的人写一个扩展名。
答案 2 :(得分:1)
对于常见的RDBMS,有许多高质量的API,除非您具有这些API未实现的特定要求,否则通常最好使用它们。一个好的经验法则是不重新发明轮子,而是在必要时延长它。
Zend Framework提供了许多RDBMS API,非常受欢迎。该框架的设计使您无需使用整个框架。您只需要使用include语句在代码中包含必要的类。
答案 3 :(得分:1)
对于像数据库交互这样重要的东西,我会选择像PDO或mysqli这样的预制解决方案。当您需要的所有内容都已创建时,为什么要经历重写数据库访问类的所有麻烦?如果您需要未包含的功能,您可以随时扩展它。
答案 4 :(得分:1)
绝对可以根据您的情况直接使用PDO或mysqli。
我使用数据库抽象层的唯一原因是,如果您计划编写必须在多个RDBM上运行的可分发软件。
如果你知道你的目标(只是mysql)并且你要编写你管理的应用程序,那么完全跳过db抽象层。当你最终进入需要切换的情况时,你通常不得不重写大量的查询(除非你使用完美的标准SQL,这在任何地方都是受支持的。)。
重构是关键,抽象可能只会使事情过于复杂。
答案 5 :(得分:1)
我不是框架的忠实粉丝,但他们确实提供了一些好处。在工作中,我们使用Zend Framework(Zend_DB)进行数据库连接。我发现使用框架至少有两个好处:
这两个功能非常有用。