如何将异步Mysql查询与PHP PDO一起使用



Mysqlnd 驱动程序 PHP 5.6 有机会使用异步查询 http://php.net/manual/en/mysqli.reap-async-query.php

如何将异步查询与 PDO 一起使用?

它不是工作,代码(PHP异步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;

2 秒除外,但结果 = 3 秒

No.您不能将 Mysql 异步查询与 PDO 一起使用。Mysqli是唯一的选择。

您可以为此使用mysqli_multi_query或常规query/poll/reap序列。

最新更新