<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 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`,整個過程沒有任何阻塞。 函數原型 ----- ```php 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命令行環境 > 1.8.6或更高版本已移除 回調函數 ---- ```php function onSQLReady(mysqli $link, mixed $result); ``` * 執行失敗,`$result`為`false`,讀取`$link`對象的`_error`屬性獲得錯誤信息,`_errno`屬性獲得錯誤碼 * 執行成功,SQL為非查詢語句,`$result`為`true`,讀取`$link`對象的`_affected_rows`屬性獲得影響的行數,`_insert_id`屬性獲得`Insert`操作的自增ID * 執行成功,SQL為查詢語句,`$result`為結果數組 使用示例 ---- ```php $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); }); } }); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看