mysqli::reap_async_query
mysqli_reap_async_query
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
mysqli::reap_async_query -- mysqli_reap_async_query — 获取异步查询的结果
返回值
失败时返回 false
。对于生成结果集的成功查询,比如 SELECT, SHOW, DESCRIBE
或
EXPLAIN
,mysqli_reap_async_query() 将返回 mysqli_result
对象。对其它成功查询,mysqli_reap_async_query() 将返回 true
。
错误/异常
If mysqli error reporting is enabled (MYSQLI_REPORT_ERROR
) and the requested operation fails,
a warning is generated. If, in addition, the mode is set to MYSQLI_REPORT_STRICT
,
a mysqli_sql_exception is thrown instead.
+添加备注
用户贡献的备注 1 note
eric dot caron at gmail dot com ¶
14 years ago
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++;
}
}
?>
备份地址:http://www.lvesu.com/blog/php/mysqli.reap-async-query.php