php_pdo_pgsql 和 php_pgsql PHP 扩展之间有什么区别?

What's the difference between php_pdo_pgsql and php_pgsql PHP extensions?

我的默认 php.ini 文件列出了两个扩展(通过 brew 安装),我有时会看到 Linux(AMZN vs Centos)上带有 _pdo_ 位的不同变体。有什么区别?

更新:我收到错误提示 pg_connect 未找到,这似乎是非 PDO 版本的一部分。要通过 brew 在 Mac 上安装它,我需要通过 运行 brew reinstall php56 --with-postgresql

添加支持

PDO 扩展可以使用相同的语法连接到不同的数据库管理系统,只要有适合您要使用的系统的驱动程序即可。 PostgreSQL 扩展只能连接到 PostgreSQL。

您看到的是 PostgreSQL 扩展和 PostgreSQL 的 PDO 驱动程序。

PDO 是 PHP 数据对象的缩写,是一种可以映射到许多不同数据库的抽象。这意味着您可以非常轻松地在 MySQL、PGSQL 和 SQLite 之间移动。 PDO 模块启用您看到的功能 here for PGSQL。

非 PDO 模块特定于 Postgres,将启用 this 一组仅适用于 Postgres 数据库的非标准化函数。