асинхронный — Как использовать асинхронный запрос MySQL с PHP PDO

Драйвер Mysqlnd PHP 5.6 имеет возможность использовать асинхронные запросы http://php.net/manual/en/mysqli.reap-async-query.php

Как использовать асинхронные запросы с PDO?

это не работа, код (PHP асинхронный MySQL-запрос):

$dbConnectionOne = new \PDO($cnn0, $conf['user'], $conf['pass']);
$dbConnectionOne->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);

$dbConnectionTwo =  new \PDO($cnn0, $conf['user'], $conf['pass']);
$dbConnectionTwo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$dbConnectionTwo->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);$t = time();
$synchStmt = $dbConnectionOne->prepare('SELECT sleep(2)');
$synchStmt->execute();

$asynchStmt = $dbConnectionTwo->prepare('SELECT sleep(1)');
$asynchStmt->execute();

$measurementConfiguration = array();
foreach ($synchStmt->fetchAll() as $synchStmtRow) {
print_r($synchStmtRow);
}

while (($asynchStmtRow = $asynchStmt->fetch()) !== false) {
print_r($asynchStmtRow);
}$t = time() - $t;

echo 'query execute ', $t, ' sec',PHP_EOL;

исключено 2 секунды, но результат = 3 секунды

5

Решение

Нет. Вы не можете использовать асинхронные запросы Mysql с PDO. Mysqli является единственным выбором.

Вы можете использовать для этого либо mysqli_multi_query или регулярный query/poll/reap последовательность.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]