7

The Mysqlnd driver PHP 5.6 have opportunity to use a Async queries http://php.net/manual/en/mysqli.reap-async-query.php

How to use Async queries with PDO?

it is not work, code (PHP asynchronous mysql-query):

$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;

excepted 2 sec but result = 3 sec

2

1 Answer 1

7

No. You cannot use Mysql async queries with PDO. Mysqli is the only choice.

You can use for this either mysqli_multi_query or the regular query/poll/reap sequence.

Sign up to request clarification or add additional context in comments.

2 Comments

Thanks, I have my wrapper class on PDO and find way of use async in PDO.
Thx for sharing, but no.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.