Async Postgres client for PHP based on Amp.
MIT License
AMPHP is a collection of event-driven libraries for PHP designed with fibers and concurrency in mind.
amphp/postgres
is an asynchronous Postgres client.
The library implements concurrent querying by transparently distributing queries across a scalable pool of available connections. Either ext-pgsql (bundled with PHP) or pecl-pq are required.
This package can be installed as a Composer dependency.
composer require amphp/postgres
Note: pecl-ev is not compatible with ext-pgsql. If you wish to use pecl-ev for the event loop backend, you must use pecl-pq.
Prepared statements and parameterized queries support named placeholders, as well as ?
and standard numeric (i.e. $1
) placeholders.
Row values are cast to their corresponding PHP types. For example, integer columns will be an int
in the result row array.
More examples can be found in the examples
directory.
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
follows the semver semantic versioning specification like all other amphp
packages.
If you discover any security related issues, please use the private security issue reporter instead of using the public issue tracker.
The MIT License (MIT). Please see LICENSE
for more information.