11

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

ADOdb 和 PDO 有什么区别?

4

4 回答 4

13

PDO 在 PHP 5.1 版本中是标准的。(它也可以通过 PHP 5.0 中的 PECL 扩展获得)大多数托管服务都会启用它。AdoDB 不是标准扩展。

此外,我相信 PDO 驱动程序是“PHP-native”的:它们构建在 PHP 本身构建的相同库之上,并使用相同的底层例程进行内存管理等事情。因此,PDO 可能比 AdoDB 更轻量级。

根据这个基准,AdoDB 比 PDO 慢得多:(固定链接) https://gist.github.com/tony-landis/31483

当然,您应该考虑这对于您的用例是否足够重要以偏爱 PDO。

于 2009-12-21T22:42:34.440 回答
4

好吧,我认为这归结为偏好。ADOdb 更适合习惯于 Microsoft 数据库访问 (ADO) 风格的人,而 PDO 更像是“PHP”,并且也是 PHP 主流的一部分,而 ADOdb 则被放在一边。

归根结底,它将基于您的目标数据库是什么(ADOdb 支持更多)以及您喜欢哪种语言风格。就个人而言,我喜欢 PDO,它适合我的需要。

于 2009-12-21T22:34:04.093 回答
4

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

ADOdb 支持比 PDO 更多的数据库。

于 2009-12-21T22:34:36.500 回答
4

PDO 是原生的并且非常快。

ADOdb 是一个更丰富的库,甚至还有 ORM(对象关系映射)之类的东西。

对我来说,PDO 最大的缺点是当它出错时调试起来很糟糕,因为它没有 PHP 源代码。当我调试一些复杂的代码时,我能看到正在执行的确切 SQL 的唯一方法是 PDO 驱动程序本身的子类......

当然,这都是意见!

于 2009-12-21T23:14:20.123 回答