Keep in mind that mysqli::reap_async_query only returns mysqli_result on queries like SELECT. For queries where you may be interested in things like affected_rows or insert_id, you can't work off of the result of mysqli::reap_async_query as the example in mysqli::poll leads you to believe. For INSERT/UPDATE/DELETE queries, the data corresponding to the query can be accessed through the associated key to the first array in the mysqli::poll function.So instead of<?php foreach ($links as $link) { if ($result = $link->reap_async_query()) { print_r($result->fetch_row()); mysqli_free_result($result); $processed++; } }?>The data is accessible via:<?php foreach ($links as $link) { if ($result = $link->reap_async_query()) { //This works for SELECT if(is_object($result)){ print_r($result->fetch_row()); mysqli_free_result($result); } //This works for INSERT/UPDATE/DELETE else { print_r($link); } $processed++; } }?>