【问题标题】:How to use async Mysql query with PHP PDO如何在 PHP PDO 中使用异步 Mysql 查询
【发布时间】:2016-05-26 08:37:08
【问题描述】:

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

如何在 PDO 中使用异步查询?

不行,代码(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;

2 秒除外,但结果 = 3 秒

【问题讨论】:

标签: php asynchronous mysqli pdo mysqli-multi-query


【解决方案1】:

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

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

【讨论】:

  • 谢谢,我在 PDO 上有我的包装类,并找到了在 PDO 中使用异步的方法。
  • 谢谢分享,但没有。
猜你喜欢
  • 2017-04-03
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 2014-05-14
  • 2013-07-18
相关资源
最近更新 更多