swoole_mysql_query

�첽��ִ��һ��SQL���ԣ���Ҫ����MySQLi��mysqlnd��չ���˺�����swoole�ײ��ṩ�����첽�����������PHP�ٷ� mysqli->reap_async_query �������ڵ�2���������⡣

  1. mysqli->reap_async_query��recv���������ù�С���ڶ�ȡ�ϴ��RecordSetʱ���˷Ѵ���readϵͳ���ã����ܲ���
  2. 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);

swoole_mysql_query��Ҫswoole-1.8.0����߰汾�����ҽ�������CLI�����л���

�ص�����

function onSQLReady(mysqli $link, mixed $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);
        });
    }
});