icicleio/postgres

Asynchronous PostgreSQL client for Icicle.

dev-master 2016-05-09 18:08 UTC

This package is auto-updated.

Last update: 2024-04-14 01:41:25 UTC


README

This library is a component for Icicle that provides an asynchronous client for PostgreSQL. Like other Icicle components, this library uses Coroutines built from Awaitables and Generators to make writing asynchronous code more like writing synchronous code.

Build Status Coverage Status Semantic Version MIT License @icicleio on Twitter

Documentation and Support

Requirements
  • PHP 5.5+ for v0.1.x branch
  • PHP 7 for v1.0 (v1.x branch and master) supporting generator delegation and return expressions
Installation

The recommended way to install is with the Composer package manager. (See the Composer installation guide for information on installing and using Composer.)

Run the following command to use this library in your project:

composer require icicleio/postgres

You can also manually edit composer.json to add this library as a project requirement.

// composer.json
{
    "require": {
        "icicleio/postgres": "^0.1"
    }
}

Example

Note that this example uses the PHP 7+ only v1.x (master) branch.

#!/usr/bin/env php
<?php

require __DIR__ . '/vendor/autoload.php';

use Icicle\Postgres;

Icicle\execute(function () {
    /** @var \Icicle\Postgres\Connection $connection */
    $connection = yield from Postgres\connect('host=localhost user=postgres dbname=test');

    /** @var \Icicle\Postgres\Statement $statement */
    $statement = yield from $connection->prepare('SELECT * FROM test WHERE id=$1');

    /** @var \Icicle\Postgres\TupleResult $result */
    $result = yield from $statement->execute(1337);

    $iterator = $result->getIterator();

    while (yield from $iterator->isValid()) {
        $row = $iterator->getCurrent();
        // $row is an array (map) of column values. e.g.: $row['column_name']
    }
});