amphp / postgres
Amp 的异步 PostgreSQL 客户端。
v2.0.0
2024-03-10 17:02 UTC
Requires
- php: >=8.1
- amphp/amp: ^3
- amphp/pipeline: ^1
- amphp/sql: ^2
- amphp/sql-common: ^2
Requires (Dev)
- ext-pgsql: *
- ext-pq: *
- amphp/php-cs-fixer-config: ^2
- amphp/phpunit-util: ^3
- phpunit/phpunit: ^9
- psalm/phar: 5.23
This package is auto-updated.
Last update: 2024-09-10 18:10:15 UTC
README
AMPHP 是一组为 PHP 设计的事件驱动库集合,考虑到纤程和并发。 amphp/postgres
是一个异步 Postgres 客户端。该库通过在可用的连接池中透明地分发查询来实现并发查询。需要 ext-pgsql(与 PHP 打包)或 pecl-pq。
功能
- 暴露一个非阻塞 API 以并发执行多个 Postgres 查询
- 透明连接池以克服 Postgres 的基本同步连接协议
- 支持参数化预处理语句
- 支持具有提交和回滚事件挂钩的嵌套事务
- 无缓冲结果以减少大型结果集的内存使用
- 支持发送和接收通知
安装
此包可以作为 Composer 依赖项安装。
composer require amphp/postgres
要求
注意:pecl-ev 与 ext-pgsql 不兼容。如果您希望使用 pecl-ev 作为事件循环后端,则必须使用 pecl-pq。
文档和示例
预处理语句和参数化查询支持命名占位符以及 ?
和标准数字(例如 $1
)占位符。
行值将被转换为相应的 PHP 类型。例如,整数列将在结果行数组中为 int
。
更多示例可以在 examples
目录中找到。
use Amp\Postgres\PostgresConfig; use Amp\Postgres\PostgresConnectionPool; $config = PostgresConfig::fromString("host=localhost user=postgres db=test"); $pool = new PostgresConnectionPool($config); $statement = $pool->prepare("SELECT * FROM test WHERE id = :id"); $result = $statement->execute(['id' => 1337]); foreach ($result as $row) { // $row is an associative-array of column values, e.g.: $row['column_name'] }
版本控制
amphp/postgres
遵循与其他所有 amphp
包一样的 semver 语义版本规范。
安全
如果您发现任何安全问题,请使用私有安全问题报告者,而不是使用公共问题跟踪器。
许可
MIT 许可证 (MIT)。请参阅 LICENSE
了解更多信息。