ADOdb和PDO在PHP中有什么区别?

12

两者似乎都试图使用PHP中的数据库让其更简单。 两者似乎都提供了对不同数据库类型(如MySQL、SQLite等)的抽象。

ADOdb和PDO之间有什么区别?

4个回答

13

PDO是PHP自5.1版本起的标准(也可在PHP 5.0中通过PECL扩展使用)。大多数主机服务商都已启用它。而AdoDB则不是一个标准的扩展。

此外,我认为PDO驱动程序是“PHP本地”的:它们是基于构建PHP本身的同一库构建的,并且使用相同的底层例程来处理内存管理等事务。因此,潜在地,PDO比AdoDB更轻量级。

根据这份基准测试报告指出,AdoDB比PDO慢得多: (链接已修正) https://gist.github.com/tony-landis/31483

当然,您应该考虑是否重要到足以优先选择PDO或不选择。


5

从技术角度来看,最显著的区别在于PDO是一个本地扩展,在PHP 5中始终以其快速编译形式包含在PHP中。ADODb也有一个扩展,但您必须先在PHP中安装它。这是支持PDO的强有力的论据,因为基于它的产品在更多的环境中很可能运行得更快。

ADOdb支持的数据库比PDO多。


关于更广泛的数据库支持,你说得很好。不过,对于那些更奇特的数据库,也许你可以使用PDO_ODBC,尽管我可以想象它比PHP本地的PDO驱动程序慢得明显。 - Roland Bouman

4

我认为这取决于个人偏好。ADOdb更适合那些习惯于使用Microsoft数据库访问(ADO)的人,而PDO更像是“PHP”的一部分,也是PHP主流的一部分,而ADOdb则有些不同。

最终,这将基于你的目标数据库(ADOdb支持更多)和你喜欢的语言风格。就我个人而言,我喜欢PDO,它能满足我的需求。


4

PDO是本地的且相当快速。

ADOdb则是一个更丰富的库,甚至具有ORM(对象关系映射)等功能。

对我来说,PDO最大的缺点是在出现问题时很难调试,因为它没有PHP源代码。当我调试一些复杂的代码时,唯一能看到实际执行的SQL语句的方法是子类化PDO驱动本身...

当然,这都是个人观点!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接