mysql

Build Status Code Coverage Release License

Client MySQL asincrono creato con Amp .


amp/mysql è un client MySQL asincrono basato sul framework di concorrenza Amp . La libreria espone un'API basata su Promise per interrogare dinamicamente più connessioni MySQL contemporaneamente. Il client distribuisce in modo trasparente queste query su un pool scalabile di connessioni disponibili e lo fa utilizzando PHP al 100% userland; non ci sono dipendenze di estensione esterne (ad esempio ext/mysqli , ext/pdo , ecc.).

Features

  • API asincrona che espone una completa concorrenza a thread singolo
  • Pooling di connessione trasparente per superare il protocollo di connessione fondamentalmente sincrono di MySQL
  • Supporto alla codifica dei trasferimenti MySQL (gzip,crittografia TLS)
  • Supporto per tutti i comandi MySQL

† Come documentato nel manuale ufficiale di Mysql Internals

Project Goals

  • Esporre un'API non bloccante per emettere più query MySQL in parallelo
  • Supporta il protocollo MySQL completo e tutti i comandi disponibili in modo asincrono

Installation

Questo pacchetto può essere installato come dipendenza di Composer .

composer require amphp/mysql

Requirements

Documentazione ed esempi

Esempi di codice più estesi risiedono nella directory degli examples .

Amp\Loop::run(function() {
    $config = Amp\Mysql\ConnectionConfig::fromString(
        "host=127.0.0.1 user=username password=password db=test"
    );
    
    /** @var \Amp\Mysql\Pool $pool */
    $pool = Amp\Mysql\pool($config);
    
    /** @var \Amp\Mysql\Statement $istruzione */
    $statement = yield $pool->prepare("SELECT * FROM table_name WHERE id = :id");
    
    /** @var \Amp\Mysql\ResultSet $risultato */
    $result = yield $statement->execute(['id' => 1337]);
    while (yield $result->advance()) {
        $row = $result->getCurrent();
        // $riga è un array associativo di valori di colonna. es: $riga['nome_colonna']
    }
});

Versioning

amphp/mysql segue le specifiche di semver semantic versioning come tutti gli altri pacchetti amphp .

Security

Se riscontri problemi relativi alla sicurezza, invia un'e-mail a contact@amphp.org invece di utilizzare il tracker dei problemi.

License

La licenza MIT (MIT). Per ulteriori informazioni, vedere LICENSE .