2016-02-15 23 views
5

Kierowca Mysqlnd PHP 5.6 mają możliwość korzystania z asynchroniczny odpytuje http://php.net/manual/en/mysqli.reap-async-query.phpJak używać asynchronicznych zapytań MySQL z PHP PDO

Jak używać zapytań ASYNC z PDO?

to nie jest praca, kod (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; 

wyjątkiem 2 sek ale wynik = 3 sek

+0

Spójrz na to: http://stackoverflow.com/questions/27240421/php-asynchronous-mysql-query – Tom

+0

to nie działa, kod –

Odpowiedz

5

Nie Nie można używać zapytań MySQL ASYNC z PDO. Mysqli jest jedynym wyborem.

Możesz użyć do tego albo mysqli_multi_query lub regularnej sekwencji query/poll/reap.

+0

Dzięki, mam swoją klasę otoki na PDO i znajduję sposób użycia async w CHNP. –

+0

Thx za udostępnianie, ale nie. – EthraZa