在通过互联网进行一项研究之后(在Stackoverflow上) - 我仍然在努力决定哪种方法最适合我学习/使用,并在PHP编程时挖掘更多。
我理解在处理数据库时使用 DAO的一些优势,而不是在应用程序文件中使用直接的mysql _ * 函数。
在 MDB2与PDO 之间做出决定时 - 有一点支持PDO的事实是它不会抽象mysql_ *函数直接与mysql api对话mysql_ *做。它也是PHP的编译C扩展,因此速度非常快。虽然MDB2(或其他库)是用PHP编写的,但它们需要在运行时进行解析并位于mysql_ *函数之上。那么,就速度而言,PDO赢了?!?
比较 DB抽象层而非本地非抽象-PHP 方式 DB抽象层的安全优势在于使用绑定器参数(预备语句)来防止大多数sql注入攻击,而且如果有需要/请求将来更容易切换RDBMS类型 - 即使它是不常见 - (这些DAO库中还有其他优点和消耗时间特性)。
无论如何,我希望有专家可以帮助我决定我应该使用其中一个库,如果是,哪一个是最推荐的?,或者我应该编写自己的DAO库来为我提供服务我的项目会在几年后得到改善吗?
感谢。
答案 0 :(得分:4)
问自己这些问题:
此外,MDB2现在已经很老了。如果我是你,我会使用Doctrines DBAL - 它可以在没有Doctrine的情况下使用,并且它位于PDO之上。我不会使用旧的“原生”mysql_ *函数。