IT. Expert System.

PHP

Get result from async query


MysqlndUhConnection::reapQuery

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::reapQueryGet result from async query

Description

public bool MysqlndUhConnection::reapQuery ( mysqlnd_connection $connection )

Get result from async query.

Parameters

connection

Mysqlnd connection handle. Do not modify!

Return Values

Returns TRUE on success. Otherwise, returns FALSE

Examples

Example #1 MysqlndUhConnection::reapQuery() example

<?php
class proxy extends MysqlndUhConnection {
 public function 
reapQuery($res) {
  
printf("%s(%s)\n"__METHOD__var_export(func_get_args(), true));
  
$ret parent::reapQuery($res);
  
printf("%s returns %s\n"__METHOD__var_export($rettrue));
  return 
$ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$conn1 = new mysqli("localhost""root""""test");
$conn2 = new mysqli("localhost""root""""test");

$conn1->query("SELECT 1 as 'one', SLEEP(1) AS _sleep FROM DUAL"MYSQLI_ASYNC |  MYSQLI_USE_RESULT);
$conn2->query("SELECT 1.1 as 'one dot one' FROM DUAL"MYSQLI_ASYNC |  MYSQLI_USE_RESULT);

$links = array(
 
$conn1->thread_id => array('link' => $conn1'processed' => false),
 
$conn2->thread_id => array('link' => $conn2'processed' => false)
);

$saved_errors = array();
do {
 
$poll_links $poll_errors $poll_reject = array();
 foreach (
$links as $thread_id => $link) {
  if (!
$link['processed']) {
   
$poll_links[] = $link['link'];
   
$poll_errors[] = $link['link'];
   
$poll_reject[] = $link['link'];
  }
 }
 if (
== count($poll_links))
  break;

 if (
== ($num_ready mysqli_poll($poll_links$poll_errors$poll_reject0200000)))
  continue;

 if (!empty(
$poll_errors)) {
  die(
var_dump($poll_errors));
 }

 foreach (
$poll_links as $link) {
  
$thread_id mysqli_thread_id($link);
  
$links[$thread_id]['processed'] = true;

  if (
is_object($res mysqli_reap_async_query($link))) {
   
// result set object
   
while ($row mysqli_fetch_assoc($res)) {
    
// eat up all results
    
var_dump($row);
   }
   
mysqli_free_result($res);
  } else {
   
// either there is no result (no SELECT) or there is an error
   
if (mysqli_errno($link) > 0) {
    
$saved_errors[$thread_id] = mysqli_errno($link);
    
printf("'%s' caused %d\n"$links[$thread_id]['query'],     mysqli_errno($link));
   }
  }
 }
} while (
true);
?>

The above example will output:

 proxy::reapQuery(array ( 0 => NULL, )) proxy::reapQuery returns true array(1) { ["one dot one"]=> string(3) "1.1" } proxy::reapQuery(array ( 0 => NULL, )) proxy::reapQuery returns true array(2) { ["one"]=> string(1) "1" ["_sleep"]=> string(1) "0" } 

See Also



Content

Android Reference

Java basics

Java Enterprise Edition (EE)

Java Standard Edition (SE)

SQL

HTML

PHP

CSS

Java Script

MYSQL

JQUERY

VBS

REGEX

C

C++

C#

Design patterns

RFC (standard status)

RFC (proposed standard status)

RFC (draft standard status)

RFC (informational status)

RFC (experimental status)

RFC (best current practice status)

RFC (historic status)

RFC (unknown status)

IT dictionary

License.
All information of this service is derived from the free sources and is provided solely in the form of quotations. This service provides information and interfaces solely for the familiarization (not ownership) and under the "as is" condition.
Copyright 2016 © ELTASK.COM. All rights reserved.
Site is optimized for mobile devices.
Downloads: 179 / 158800602. Delta: 0.00747 с