swoole_mysql_query
�첽��ִ��һ��SQL���ԣ���Ҫ����MySQLi��mysqlnd��չ���˺�����swoole�ײ��ṩ�����첽�����������PHP�ٷ�
mysqli->reap_async_query
�������ڵ�2���������⡣
mysqli->reap_async_query
��recv���������ù�С���ڶ�ȡ�ϴ��RecordSetʱ���˷Ѵ���readϵͳ���ã����ܲ���- MySQL��������RecordSet���ܻ�ֶη��ͣ�
mysqli->reap_async_query
���������������³����˻�Ϊͬ������ģʽ�������������
swoole_mysql_query
�ײ�ʹ��64K
�ڴ滺��������ʹ��ȡ�ܴ��RecordSetҲ����������readϵͳ���á�����
swoole_mysql_query
����swoole�ṩ��Epoll�ӿ��첽��ȡMySQL��������RecordSet
����������û���κ�������
����ԭ��
function swoole_mysql_query(mysqli $link, string $sql, callable $callback);
- $linkΪ�����ӵ�mysqli����
- $sqlΪҪִ�е�SQL���
- $callbackִ�гɹ����ص��˺���
- ÿ��MySQLi����ֻ��ͬʱִ��һ��SQL������ȴ����ؽ�������ִ����һ��SQL
swoole_mysql_query��Ҫswoole-1.8.0����߰汾�����ҽ�������CLI�����л���
�ص�����
function onSQLReady(mysqli $link, mixed $result);
- ִ��ʧ�ܣ�
$result
Ϊfalse
����ȡ$link
�����_error
���Ի�ô�����Ϣ��_errno
���Ի�ô����� - ִ�гɹ���SQLΪ�Dz�ѯ��䣬
$result
Ϊtrue
����ȡ$link
�����_affected_rows
���Ի��Ӱ���������_insert_id
���Ի��Insert
����������ID - ִ�гɹ���SQLΪ��ѯ��䣬
$result
�������
ʹ��ʾ��
$db = new mysqli; $db->connect('127.0.0.1', 'root', 'root', 'test'); $sql = "SELECT * FROM `userinfo` LIMIT 0, 10000"; $s = microtime(true); swoole_mysql_query($db, $sql, function(mysqli $db, $r) { global $s; //SQLִ��ʧ���� if ($r == false) { var_dump($db->_error, $db->_errno); } //ִ�гɹ���update/delete/insert��䣬û�н���� elseif ($r == true) { var_dump($db->_affected_rows, $db->_insert_id); } //ִ�гɹ���$r�ǽ�������� else { echo "count=".count($r).", time=".(microtime(true) - $s), "\n"; var_dump($r); swoole_mysql_query($db, "show tables", function ($db, $r) { var_dump($r); }); } });