MySQLi из коробки поддерживает асинхронные запросы, я написал ещё одну обёртку/адаптер под ReactPHP.
Репозиторий на GitHub
Установка
composer require shuchkin/react-mysqli
Пример
$loop = \React\EventLoop\Factory::create();
$db = \Shuchkin\ReactMySQLi\Client::connect($loop, 'localhost', 'root', '', 'my_db' );
$db->query('SELECT id,name,email FROM user')->then(
function (\Shuchkin\ReactMySQLi\Result $result) {
print_r( $result->all() ); // array
},
function ( \Exception $ex ) {
trigger_error( $ex->getMessage() );
}
);
$loop->run();