在没有任何文件的情况下超越函数原型 http://php.net/manual/en/mysqli.poll.php我正在努力寻找 mysqli_poll() 函数的第三个参数是什么。
int mysqli_poll (
array &$read ,
array &$error ,
array &$reject ,
int $sec
[, int $usec ] )
查看 (C) 源代码,它似乎用资源填充 $reject 数组,其中......
CONN_GET_STATE((*p)->data) <= CONN_READY
|| CONN_GET_STATE((*p)->data) == CONN_QUIT_SENT
这是否意味着与服务器的连接正在关闭/关闭?
还有别的事吗?
是否应该预先填充资源以检查是否断开连接?或者它们会从 $read 和 $error 自动添加吗?
数组绑定到 select() 系统调用。
正如你在这里看到的:http://lxr.php.net/xref/PHP_5_5/ext/mysqlnd/mysqlnd.c#1384 http://lxr.php.net/xref/PHP_5_5/ext/mysqlnd/mysqlnd.c#1384
所以,是的,根据select(2)
人文档:
Select() 检查其地址在 readfds、writefds 和 errorfds 中传递的 I/O 描述符集,以分别查看其中的某些描述符是否已准备好读取、准备好写入或有待处理的异常条件。
(writefds
这里不重要,在实现中被忽略)
The $read
or $error
如果另一个数组填充有 mysqli 对象,则允许为空。
$read
必须是一个包含您想要的 mysqli 对象的数组poll.
$error
必须是一个包含您想要的 mysqli 对象的数组检查异常数据.
正如你所看到的http://lxr.php.net/xref/PHP_5_5/ext/mysqlnd/mysqlnd_enum_n_def.h#322 http://lxr.php.net/xref/PHP_5_5/ext/mysqlnd/mysqlnd_enum_n_def.h#322 and http://lxr.php.net/xref/PHP_5_5/ext/mysqlnd/mysqlnd.c#1228 http://lxr.php.net/xref/PHP_5_5/ext/mysqlnd/mysqlnd.c#1228,所有不匹配的东西<= CONN_READY || == CONN_QUIT_SENT
暗示CONN_QUERY_SENT, CONN_SENDING_LOAD_DATA, CONN_FETCHING_DATA, CONN_NEXT_RESULT_PENDING
(即数据尚未准备好获取;名称应该是不言自明的)不会被添加到准备好的数组==将$rejected
:
$rejected
当您将其传递给函数时可以是任何内容;它将被一个包含以下条目的数组覆盖$read
尚未准备好阅读。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)